0

Bir sekme parçasında başlatma bildirimini deniyorum. Bildirimi tıkladığımda belirli sekmeyi açmam gerekiyor. Ben böyle denedim. bildiriminBildirime bastığımda sekmelerin parçalarını nasıl açabilirim?

 Intent intent = new Intent(context, NotificationTabs.class); 
    // Send data to NotificationView Class 
    intent.putExtra("Medicine", "Medicine"); 
    //intent.putExtra("text", "need to take medicine"); 
    // intent.setAction("Medicine"); 
    // Open NotificationView.java Activity 
    PendingIntent pIntent = PendingIntent.getActivity(context, 0, intent, 
      PendingIntent.FLAG_UPDATE_CURRENT); 

ve ana sekme faaliyeti

public class NotificationTabs extends AppCompatActivity { 
TabLayout tabLayout; 
ViewPager viewPager; 
ViewPagerAdapter adapter; 
ActionBar actionBar; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_notification_tabs); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    actionBar = getSupportActionBar(); 
    tabLayout =(TabLayout) findViewById(R.id.tablayout); 
    viewPager = (ViewPager)findViewById(R.id.viewpager); 
    setupViewPager(viewPager); 
    tabLayout.setupWithViewPager(viewPager); 

    int position = 0; 

    Intent intent = getIntent(); 

    String intentaction = intent.getAction(); 

    if (intentaction != null) { 
     if (intentaction.equals("Medicine")) { 
      position = 2; 
     } 
    } 
    actionBar.setSelectedNavigationItem(position);//--- here i got error 
} 

private void setupViewPager(ViewPager viewPager) { 
    adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
    adapter.addFragment(new QuizFragment(),"Quiz"); 
    adapter.addFragment(new TipsFragment(),"Tips"); 
    adapter.addFragment(new MedicineFragment(),"Medicine"); 

    viewPager.setAdapter(adapter); 
} 
class ViewPagerAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

    public ViewPagerAdapter(FragmentManager manager) { 

     super(manager); 
    } 
    public void addFragment(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 

    } 

    @Override 
    public Fragment getItem(int position) { 

     return mFragmentList.get(position); 
    } 

    @Override 
    public int getCount() { 
     return mFragmentList.size(); 
    } 


    @Override 
    public CharSequence getPageTitle(int position) { 
     return mFragmentTitleList.get(position); 
    } 
} 

} içinde

herhangi biri ben bildirim tıkladığımda benim kodunda? parçasını açmak nasıl yardımcı olabilir edin. Bildirime her bastığımda androidde Medicine Fragment'e gelmem gerekiyor. Şimdiden teşekkürler.

+0

GCM kullanıyor musunuz? –

+0

GCM + Alarm Bildirimi – Latha

cevap

0

niyet bekleyen niyet ile birlikte açmak için sekmeyi belirterek bu

String name = data.getStringExtra("Medicine"); 
+0

bu hatayı alıyor: Nedeni: java.lang.IllegalStateException: setSelectedNavigationIndex geçerli gezinme modu için geçerli değil – Latha

+0

http://stackoverflow.com/questions/12671291/how-to-show-selected-fragment-in -action-bar-tab Buradan bak – resw67

+0

Ve bunu yalnızca protrite modunda olan yatay modda açmayın – resw67

0

Geçiş eylem gibi

getStringExtra(); 

kullanın. Ve aktivitenizde, iletilen eylemi (bkz. GetIntent()) iletin ve buna dayalı olarak, belirli bir sekmeyi açın.

Intent intent = new Intent(this, NotificationTabs.class); 
intent.setAction("Medicine"); 
PendingIntent pending intent = PendingIntent.getService(this, 0, intent, 0);    



public class NotificationTabs extends AppCompatActivity { 
    TabLayout tabLayout; 
    ViewPager viewPager; 
    ViewPagerAdapter adapter; 
    ActionBar actionBar; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_notification_tabs); 
     //Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     //setSupportActionBar(toolbar); 
     actionBar = getSupportActionBar(); 
     tabLayout =(TabLayout) findViewById(R.id.tablayout); 
     viewPager = (ViewPager)findViewById(R.id.viewpager); 
     setupViewPager(viewPager); 
     tabLayout.setupWithViewPager(viewPager); 







    } 

    private void setupViewPager(ViewPager viewPager) { 

     adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     adapter.addFragment(new QuizFragment(),"Quiz"); 
     adapter.addFragment(new TipsFragment(),"Tips"); 
     adapter.addFragment(new MedicineFragment(),"Medicine"); 

     viewPager.setAdapter(adapter); 
     if(getIntent().getAction().equals("Medicine") { 

      actionBar.setSelectedNavigationItem(2); 


     }else{ 
      actionBar.setSelectedNavigationItem(0); 
     } 

      adapter.notifyDataSetChanged();//here you have to notify  the adapter 
    } 
    class ViewPagerAdapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 

     public ViewPagerAdapter(FragmentManager manager) { 

      super(manager); 
     } 
     public void addFragment(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 

     } 

     @Override 
     public Fragment getItem(int position) { 

      return mFragmentList.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 


     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 
} 
+0

Sekmeyi nasıl açabilirim? actionBar.setSelectedNavigationItem (position) burada NotificationTabs onCreate öğesinde – Latha

+0

konumuna nasıl ulaşabilirim? (getIntent(). getAction(). eşittir ("OPEN_TAB_1") { // burada parça sekmesini iletirsiniz } –

+0

ya da ben burada bunun gibi olsun ama benim durumumda (getIntent(). GetAction(). Eşittir ("Tıp") {burada nasıl sekmeyi açabilirim?} – Latha

0

örnek

dönüş yeni Amacı (MyApplication.getContext(), DepositCLIA.class) .setAction ("tab2deposit");

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    Intent intent = getIntent(); 
    String intentaction = intent.getAction(); 
    if (intentaction != null) { 
     if (intentaction.equals("tab2deposit")) { 
      mViewPager.setCurrentItem(1); 
     } 
    } 
} 
+0

Cevabınıza biraz anlatı eklemelisiniz. Sadece kod ile cevaplar silinir. – rghome

İlgili konular