Android Activity 跳转方式总结

第一种方式:普通跳转方式

在本Activity点击事件中

Intent intent = new Intent(本Activity.this, 要跳转的目标Activity.class);
startActivity(intent);

第二种方式:携带数据跳转方式

传递参数的Activity点击事件中

Intent intent = new Intent(本Activity.this,要跳转的目标Activity.class);

//使用Bundle携带数据

Bundle bundle = new Bundle();

//传递name参数为“android”

bundle.putString("name","android");

intent.putExtras(bundle);

startActivity(intent);

接收参数的Activity中oncreat

@Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_content);

      //跳转的目标页面接收数据

       Bundle bundle = this.getIntent().getExtras();

       //接收数据内容

       String name = bundle.getString("name");

}

第三种跳转方式:携带集合跳转方式

本Activity中携带集合跳转的代码:

     Intent intent = new Intent(本Activity.this, 要跳转的目标Activity.class);
     intent.putExtra("list", (Serializable) list);
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     startActivity(intent);

目标Activity中接收集合的代码:

     yundanList = (List<entity>) getIntent().getSerializableExtra("list");

第四种跳转方式:返回上一页面中获取数据的方式

本Activity中返回按钮的点击事件:

OnClickListener onClickListener = new OnClickListener() {
        
        @Override
        public void onClick(View v) {

            switch (v.getId()) {
            case R.id.im_return://返回
                setResult(1);
                finish();
                break;
            default:
                break;
            }
        }
    };

要返回的上一个Activity中的回调函数代码:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

       //重新获取数据
        if(resultCode==1){//如果是返回的标识
            if(messgelist.size()==0){
                Countents countents = new Countents(MainActivity.this);
                  countents.SQLitedate();
                  for(int i = 0; i < basicDateEntity.getListstring().size();i++){
                      if(basicDateEntity.getListstring().size() != 0){
                          messgelist.add(basicDateEntity.getListstring().get(i));
                      }
                  }
            }else{
                tv_result.setText("今日抽签还没有完毕");
                tv_result.setTextColor(Color.parseColor("#FF3366"));
            }
        }
    };

猜你喜欢

转载自blog.csdn.net/wkh11/article/details/82250694