Android Activity与Fragment之间的跳转实例详解

Android Activity与Fragment之间的跳转实例详解,第1张

概述Activity及Fragment之间的跳转直接跳转基本使用方法publicclassMainActivityextendsAppCompatActivity{

Activity及Fragment之间的跳转

直接跳转

基本使用方法

public class MainActivity extends AppCompatActivity {  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);  }  public voID jump(VIEw vIEw) {    Intent intent = new Intent(this,VIDeoPlayActivity.class);    intent.putExtra("vIDeo_ID","1");    startActivity(intent);  }}
public class VIDeoPlayActivity extends Activity {  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_vIDeo_play);    Intent intent = getIntent();  }}

借助工具类

然而并没什么卵用

public static voID startActivity(Context context,Class clazz,Bundle data) {  Intent intent = new Intent(context,clazz);  if(data != null){    intent.putExtras(data);  }  context.startActivity(intent);}

推荐方案

把new Intent()放在目标Activity,这样可以onCreate里的getIntent形成对应 更容易理解和管理一个出口,多个入口的情况 较方便维护传递数据的key和value(即key由目标Activity来定义,value是实际的来源)
public class MainActivity extends AppCompatActivity {  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);  }  public voID jump(VIEw vIEw) {    startActivity(VIDeoPlayActivity.newIntent(this,"1"));  }}
public class VIDeoPlayActivity extends Activity {  @OverrIDe  protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_vIDeo_play);  }  public static Intent newIntent(Context context,String vID) {    Intent intent = new Intent(context,vID);    return intent;  }}

Fragment跳转

首先需要一个空的构造方法,Fragment恢复重建要使用。 使用newInstance代替构造方法传参 在Fragment.onCreate方法获取实参
public class MainFragment{  public MainFragment() {    // required empty public constructor  }  public static MainFragment newInstance(int pos) {    MainFragment fragment = new MainFragment();    Bundle args = new Bundle();    args.putInt("pos",pos);    fragment.setArguments(args);    return fragment;  }  @OverrIDe  public voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    if (getArguments() != null) {      pos = getArguments().getInt("pos");    }  }}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

以上是内存溢出为你收集整理的Android Activity与Fragment之间的跳转实例详解全部内容,希望文章能够帮你解决Android Activity与Fragment之间的跳转实例详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1147088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存