一、activity与activity之间跳转:
Intent intent = new Intent(LoginActivity.this,StudentActivity.class);
startActivity(intent);
Intent intent = new Intent(LoginActivity.this,StudentActivity.class);
intent.putExtra("Flag",flag);
startActivity(intent);
getIntent().getIntExtra("Flag", 0);
或
getIntent().getStringExtra("Flag");
二、activity跳转fragment:
activity不能直接跳转到fragment,必须先跳转到fragment对应的activity中
法一:
activity可通过发送广播
show_pick_course.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
T_pick_course.this.finish();
Log.v("qjm", "show_pick_course click");
Intent intent = new Intent("android.intent.action.CART_BROADCAST");
intent.putExtra("data", "refresh");
LocalBroadcastManager.getInstance(T_pick_course.this).sendBroadcast(intent);
sendBroadcast(intent);
}
});
fragment接收广播:
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
LocalBroadcastManager broadcastManager=LocalBroadcastManager.getInstance(getActivity());
IntentFilter intentFilter=new IntentFilter();
intentFilter.addAction("android.intent.action.CART_BROADCAST");
BroadcastReceiver broadcastReceiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String msg=intent.getStringExtra("data");
if("refresh".equals(msg)){
}
}
};
broadcastManager.registerReceiver(broadcastReceiver,intentFilter);
}
法二:
Activity:
通过setReult("请求码")
btn_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(222);
}
});
fragment:重写onActivityResult()
方法,activity传来的请求码,标记要跳转到哪个fragment。例如222,跳转到的是CourseFragment
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==1&&resultCode==222){
StudentActivity studentActivity=(StudentActivity)getActivity();
android.support.v4.app.FragmentManager fragmentManager=studentActivity.getSupportFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.rb_course, new CourseFragment());
fragmentTransaction.commit();
}
}
二、fragment跳转activity:
Intent intent=new Intent(mContext,T_pick_course.class);
startActivity(intent);
再添加一个知识点:
返回上一个页面:调用.finish();
finish():用于结束一个activity的生命周期,finish是activity类,针对activity,当调用finish()后,仅仅把当前activity推向后台,并没有释放资源。
Intent intent=new Intent(activity1.this,activity2.class);
startActivity(intent);
finish();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)