Android的信使——“Intent”
- “Intent”的详细用法请移步——点击这里
- 本文主要介绍一个实现多页面带参返回跳转的项目。
- 项目结构展示:
-
效果演示:
Android小项目
-
源代码:
1.MainActivity.java
package com.example.test;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button bt1;
private TextView tv2;
final int REQUEST_CODE = 1;
private Button bt2;
private int requestCode;
private int resultCode;
private Intent data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout1);
bt1 = ((Button) findViewById(R.id.bt1));
tv2 = ((TextView) findViewById(R.id.tv2));
bt2 = ((Button) findViewById(R.id.bt2));
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SettingActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}
});
}
private void reuse() {
Button bt1 = (Button) findViewById(R.id.bt1);
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SettingActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}
});
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
String result = data.getStringExtra("second");
switch (result) {
case "1":
setContentView(R.layout.layout1);
setTitle("layout1");
Toast.makeText(MainActivity.this, "已成功跳转到第一个界面", Toast.LENGTH_SHORT).show();
bt2 = ((Button) findViewById(R.id.bt2));
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SettingActivity.class);
startActivityForResult(intent, REQUEST_CODE);
}
});
reuse();
break;
case "2":
setContentView(R.layout.layout2);
setTitle("layout2");
Toast.makeText(MainActivity.this, "已成功跳转到第二个界面", Toast.LENGTH_SHORT).show();
reuse();
break;
case "3":
setContentView(R.layout.layout3);
setTitle("layout3");
Toast.makeText(MainActivity.this, "已成功跳转到第三个界面", Toast.LENGTH_SHORT).show();
reuse();
break;
case "4":
setContentView(R.layout.layout4);
setTitle("layout4");
Toast.makeText(MainActivity.this, "已成功跳转到第四个界面", Toast.LENGTH_SHORT).show();
reuse();
break;
case "5":
setContentView(R.layout.layout5);
setTitle("layout5");
Toast.makeText(MainActivity.this, "已成功跳转到第五个界面", Toast.LENGTH_SHORT).show();
reuse();
break;
}
}
}
}
}
2.SettingActivity.java
package com.example.test;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
public class SettingActivity extends AppCompatActivity {
private Button bt1;
private Button bt20;
private EditText et;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.setting);
bt20 = ((Button) findViewById(R.id.bt20));
et = ((EditText) findViewById(R.id.et));
String a = Integer.toString(1);
bt20.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//类型转换
String n = et.getText().toString();
Toast.makeText(SettingActivity.this, "您想跳转到第" + n + "个界面!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(SettingActivity.this, MainActivity.class);
intent.putExtra("second", n);
setResult(RESULT_OK, intent);
finish();
}
});
}
}