【发布时间】:2016-04-12 10:54:55
【问题描述】:
我正在尝试在一个标签片段中启动通知。单击通知时,我需要打开特定选项卡。我试过这样。
在通知中
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);
在主标签活动中
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);
}
}
}
请任何人都可以帮助我在我的代码中单击通知时如何打开片段?每当我按下通知时,我都需要在 android 中使用 Medicine Fragment。提前致谢。
【问题讨论】:
-
GCM+报警通知
标签: android android-fragments tabs android-notifications android-tablayout