利用同一个Activity界面实现二个不同的界面之间的跳转

先看图,再描述
这里写图片描述

上图的效果中,我们看到是由三个界面组成:点我界面, 设置界面, 自动返回界面组成,并实现了checkBox保存状态和弹出dialog.

但是实际上,只用了点我界面和设置界面(和自动返回界面共用一个界面).

所以实现如下:分散实现如下
第一步:checkBox的保存状态

//直接设置BUtton事件即可解决
 <CheckBox
            android:id="@+id/switch_transferr"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="20dp"
            android:button="@drawable/bg_wifi_switch"/>

第二步,界面之间的跳转

//点我界面
findViewById(R.id.click).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //跳入到设置界面
                MainActivity.start(TextActivity.this,MainActivity.SETTING_TITLE);
            }
        });

//共用界面
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    //title传输标识
    public static final String TITLE_TAG = "TITTL_TAG";
    //设置界面标题
    protected static final String SETTING_TITLE = "设置";
    //自动返回界面标题
    protected static final String AUTO_RETURN_TITLE = "自动返回";

    private CheckBox mCheckBox;
    private RelativeLayout mRelSetting;
    private LinearLayout mSwitch_linearLayout;
    private TextView mTitleText;
    private String mTitleStr;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        inData();
        //头部设置标题
        mTitleText = (TextView) findViewById(R.id.title);
        //选择框
        mCheckBox = (CheckBox) findViewById(R.id.switch_transferr);
        //第一个设置界面的样式
        mRelSetting = (RelativeLayout) findViewById(R.id.auto_setting);
        mRelSetting.setOnClickListener(this);
        //第二个选择界面的设置
        mSwitch_linearLayout = (LinearLayout) findViewById(R.id.switch_linearLayout);
        initTieltStr();
        initView();
        initListener();
    }

    //设置checkBox的监听
    private void initListener() {
        mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                //根据返回的boolean值去判断
                if(isChecked) {
                    //保存当前的状态值,并弹出dialoag
                    SettingSharedPreUtils.setWifiSwitchState(getApplicationContext(),true);
                    mCheckBox.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            String msg = "自动转入已开启,账户余额将在每日凌晨自动转入铜宝";
                            showTipsDialog(msg);
                        }
                    },200);
                }else {
                    //同样保存期状态值,并弹出dialog
                    SettingSharedPreUtils.setWifiSwitchState(getApplicationContext(),false);
                    mCheckBox.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            String msg = "自动转入已关闭";
                            showTipsDialog(msg);
                        }
                    },200);
                }
            }
        });
    }

    //弹出Dialog
    private void showTipsDialog(String msg) {
        new CommonDialog(this).builder().setTitle("提示")
                .setCanceledOnTouchOutside(false)
                .setContentMsg(msg)
                .setPositiveBtn("确定", new CommonDialog.OnPositiveListener() {
                    @Override
                    public void onPositive(View view) {
                        finish();
                    }
                }).show();
    }

    //判断显示的界面
    private void initView() {
        if(TextUtils.equals(mTitleStr,SETTING_TITLE)) {
            //设置界面
            mRelSetting.setVisibility(View.VISIBLE);
            mSwitch_linearLayout.setVisibility(View.GONE);
        }else if(TextUtils.equals(mTitleStr,AUTO_RETURN_TITLE)){
            //自动返回界面
            mRelSetting.setVisibility(View.GONE);
            mSwitch_linearLayout.setVisibility(View.VISIBLE);
            //获取CheckBox的状态
            if(SettingSharedPreUtils.getWifiSwitchState(this,false)) {
                mCheckBox.setChecked(true);
            }else {
                mCheckBox.setChecked(false);
            }
        }
    }

    //获取头部的监听数据
    private void initTieltStr() {
        if(TextUtils.equals(mTitleStr,SETTING_TITLE)) {
            mTitleText.setText(mTitleStr);
        }else if(TextUtils.equals(mTitleStr,AUTO_RETURN_TITLE)){
            mTitleText.setText(mTitleStr);
        }
    }

    //获取数据
    private void inData() {
        mTitleStr = getIntent().getStringExtra(TITLE_TAG);
    }

    //开启当前的activity
    public static void start(Context context,String title) {
        Intent intent  = new Intent(context,MainActivity.class);
        intent.putExtra(TITLE_TAG,title);
        context.startActivity(intent);
    }

    @Override
    public void onClick(View v) {
        //点击跳入自动返回界面
        MainActivity.start(this,AUTO_RETURN_TITLE);
    }
}

//dialog和sharePrefrence就不贴出来了.

以上,大家就可以实现了

好的,你可以按照以下步骤来实现: 1. 在 Android Studio 中创建一个新项目。 2. 在项目的 res/layout 文件夹下创建两个 XML 布局文件 activity_main.xml 和 activity_second.xml。 3. 在 activity_main.xml 中添加一个 EditText 和一个 Button 控件,并设置它们的 ID 和文本。 4. 在 MainActivity.java 中获取 EditText 和 Button 的引用,并为按钮添加一个点击事件处理程序。在点击事件处理程序中获取 EditText 中输入的文本,并使用 Intent 将其传递到第二个 Activity。 ``` public class MainActivity extends AppCompatActivity { private EditText editText; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = findViewById(R.id.edit_text); button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String account = editText.getText().toString(); Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("account", account); startActivity(intent); } }); } } ``` 5. 在 activity_second.xml 中添加一个 TextView 控件,并设置它的 ID 和文本。 6. 在 SecondActivity.java 中获取 TextView 的引用,并从 Intent 中获取传递过来的账号信息,并显示在 TextView 中。 ``` public class SecondActivity extends AppCompatActivity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); textView = findViewById(R.id.text_view); String account = getIntent().getStringExtra("account"); textView.setText(account); } } ``` 7. 运行应用程序并测试。在第一个界面输入账号后点击按钮,应该能够跳转到第二个界面并显示账号信息。 希望这个例子能够帮助到你,如果还有其他问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值