我有一个警报对话框,如果用户没有警报发送用户到警报部分,对话框和警报部分是在同一个活动,但不同的片段
我的对话框来自"LifeFragment.java"one_answers"alarmsfragment.java"上的"alarmsfragment "
如何将用户发送到另一个片段?
告诉活动从哪里开始:
tabs.setViewPager(pager);
pager.setCurrentItem(2);
我必须这样做吗?:
Intent myIntent = new Intent(v.getContext(),
HomeScreenActivity.class);
myIntent.putExtra("1", ViewPager);
1。
- 定义新的意图
Intent intent = new Intent(context, Activity.class);
-
定义活动中额外的键
-
添加你想要显示的片段
intent.putExtra(Activity.STRING_KEY, Activity.VALUE);
- 火灾意图
context.startActivity(intent);
2。
- 活动定义:
public static String STRING_KEY = "myKey"; public static String VALUE1 = "fragment1"; public static String VALUE2 = "fragment2"; private String _extra; private int _fragmentNumber;
- in onCreate(savedInstanceState) get intent extra
if(savedInstanceState != null) { _extra = getIntent().getStringExtra(STRING_KEY); // or IntegerExtra(key) }
- 设置viewpager [findview, setadapter(在viewpager上),设置例如tablayout with viewpager等]
ViewPager pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(Adapter);
3。
(例如在接收到"extra"时使用if或switch语句)
// if example:
if(_extra != null && _extra == VALUE) {
// change here fragment
pager.setCurrentItem(numberOfFragmentToShow)
}
// switch example:
switch(_extra){
case VALUE1:
_fragmentNumber = 1;
break;
case VALUE2
_fragmentNumber = 2
break;
default:
_fragmentNumber = 3;
}
pager.setCurrentItem(_fragmentNumber);
代替String额外值,可以使用Integer值并直接在分页
上使用这里有详细的例子:
在启动
你必须重定向到你的活动,发送一些数据,例如在一个Bundle中,并基于这些数据你决定你的活动应该显示哪个片段(如果活动应该调用片段的一些方法)。
意图只用于启动活动或服务,而不是片段。