如何使用广播接收器启动/午餐片段 例如 : 如果我需要开始/ luanch 活动,我可以使用意图:
public void onReceive(final Context context, Intent intent) {
this.context = context;
this.intent = intent;
try {
Bundle bundle = intent.getExtras();
int messageID = bundle.getInt("id");
intent = new Intent(context, GetAlarm.class);
intent.putExtra("id",messageID);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
} catch (Exception e) {
Toast.makeText(context, "There was an error ", Toast.LENGTH_SHORT)
.show();
e.printStackTrace();
}
}
但我不知道片段怎么样
答案 0 :(得分:5)
您必须 luanch 意图和 putextera 和发送活动。 然后你可以从活动中启动片段。
答案 1 :(得分:3)
片段是活动的一部分。如果没有活动,则无法启动单独的片段。您可以使用片段启动活动。
一种方法是在活动中创建 BroadcastReceiver 内部类,以启动片段。
答案 2 :(得分:0)
这有用吗?把它放在你的广播接收器中:
activityIntent = new Intent(context, MainActivity.class);
activityIntent.putExtra("fragment", "fragment2");
activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(activityIntent);
在用于设置片段寻呼机适配器的代码下方:
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
if (bundle.getString("fragment") != null) {
/*Log.w(getClass().toString(), bundle.getString("fragment"));*/
viewPager.setCurrentItem(2);
}
}
此代码通常低于以下内容:
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
final PagerAdapter adapter = new FragmentPagerAdapter
(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
只需确保它位于您设置适配器的位置,而不仅仅是您的viewpager,否则您将无法通过viewpager导航到任何片段。