以下是两个资源代码,目的是为了实现从a界面跳转到b界面,然后从b界面输入1~5,然后跳转到a界面,并且返回输入的参数,在a界面里面实现返回参数代表的布局样式.
问题:如何在从b界面带参返回以后可以重新选择新的界面.
ps:会不会是因为finish()结束了界面跳转呢?应该咋搞?
1.MainActivity.java
public class MainActivity extends AppCompatActivity {
private Button bt1;
private TextView tv2;
final int REQUEST_CODE = 1;
private Button bt2;
@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);
reuse();
}
});
}
private void reuse() {
Button bt1 = (Button) findViewById(R.id.bt1);
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setContentView(R.layout.layout1);
setTitle(R.string.app_name);
}
});
}
@Override
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");
tv2.setText(result);
switch (result) {
case "1":
//加载layout1布局文件
setContentView(R.layout.layout1);
setTitle("layout1");
Toast.makeText(MainActivity.this, "已成功跳转到第一个界面", Toast.LENGTH_SHORT).show();
reuse();
break;
case "2":
//加载layout1布局文件
setContentView(R.layout.layout2);
setTitle("layout2");
Toast.makeText(MainActivity.this, "已成功跳转到第二个界面", Toast.LENGTH_SHORT).show();
reuse();
break;
case "3":
//加载layout1布局文件
setContentView(R.layout.layout3);
setTitle("layout3");
Toast.makeText(MainActivity.this, "已成功跳转到第三个界面", Toast.LENGTH_SHORT).show();
reuse();
break;
case "4":
//加载layout1布局文件
setContentView(R.layout.layout4);
setTitle("layout4");
Toast.makeText(MainActivity.this, "已成功跳转到第四个界面", Toast.LENGTH_SHORT).show();
reuse();
break;
case "5":
//加载layout1布局文件
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.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.AppCompatActivity;
public class SettingActivity extends AppCompatActivity {
private Button bt1;
private Button bt2;
private EditText et;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.setting);
bt2 = ((Button) findViewById(R.id.bt2));
et = ((EditText) findViewById(R.id.et));
bt2.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();
}
});
}
}