1. 您现在的位置:首页
  2. 新闻
  3. IT行业
  4. Activity之间的跳转和数据传递

Activity之间的跳转和数据传递

2021-01-18 阅读数:54

1、按钮点击跳转页面

       mBtn3.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               //显式跳转1——首选
               Intent intent1 = new Intent(MainActivity.this, loadActivity.class);
               startActivity(intent1);

               //显式跳转2
               Intent intent2 = new Intent();
               intent2.setClass(MainActivity.this, loadActivity.class);
               startActivity(intent2);

               //显式跳转3
               Intent intent3 = new Intent();
               intent3.setClassName(MainActivity.this, "com.gxw.myappf.loadActivity");
               startActivity(intent3);

               //显式跳转4
               Intent intent4 = new Intent();
               intent4.setComponent(new ComponentName(MainActivity.this, "com.gxw.myappf.loadActivity"));
               startActivity(intent4);

               //隐式跳转(需做下框中设置)
               Intent intent5 = new Intent();
               intent5.setAction("android.gxw.jumpyin");
               startActivity(intent5);
           }
       });12345678910111213141516171819202122232425262728

# activity_main.xml
       <activity android:name=".loadActivity"
           android:theme="@style/Theme.NoTitleBar.CustomBackground"
           android:screenOrientation="portrait">
           <intent-filter>
               <action android:name="android.gxw.jumpyin" />

               <category android:name="android.intent.category.DEFAULT" />
           </intent-filter>
       </activity>12345678910

2、数据传递

点击按钮跳转并传递参数

mBtn3.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               //跳转并传递参数
               Intent intent = new Intent(MainActivity.this, loadActivity.class);
               Bundle bundle = new Bundle(); //可传多个参数
               bundle.putString("name","123");
               bundle.putInt("id",'5');
               intent.putExtra("data", bundle);
               startActivity(intent);
           }
       });123456789101112

接收参数并返回参数

   private TextView mTv1;
   private Button mbtn1;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_text_view);

       mTv1 = findViewById(R.id.tv_4); //找到控件
       mbtn1 = findViewById(R.id.bt_1); //找到控件
       Bundle bundle = getIntent().getExtras(); //获取传递的参数
       String name = bundle.getString("name");
       int id = bundle.getInt("id");

       mTv1.setText(name + ',' + id);

       //返回参数
       mbtn1.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               Intent intent1 = new Intent();
               Bundle bundle1 = new Bundle();
               bundle1.putString("data","back");
               intent1.putExtras(bundle1);
               setResult(TextViewActivity.RESULT_OK,intent1);设置返回结果
               finish();//结束本页面            }
       });
   }1234567891011121314151617181920212223242526272829

在原页面中添加函数用于接收返回的数据

   @Override
   protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
       super.onActivityResult(requestCode, resultCode, data);
       Toast.makeText(MainActivity.this, data.getExtras().getString("data"),Toast.LENGTH_LONG).show();
   }