Ze Hsia 2021-04-02 17:33 采纳率: 100%
浏览 51
已结题

怎样实现多个页面跳转以后还可以重新跳转?

以下是两个资源代码,目的是为了实现从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();
            }
    });
}


}
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
    • ¥15 安装quartus II18.1时弹出此error,怎么解决?
    • ¥15 keil官网下载psn序列号在哪
    • ¥15 想用adb命令做一个通话软件,播放录音
    • ¥30 Pytorch深度学习服务器跑不通问题解决?
    • ¥15 部分客户订单定位有误的问题
    • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
    • ¥15 Bug traq 数据包 大概什么价
    • ¥15 在anaconda上pytorch和paddle paddle下载报错
    • ¥25 自动填写QQ腾讯文档收集表