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

来源:互联网 发布:深圳软件协会会长 编辑:程序博客网 时间:2024/06/04 17:59

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

上图的效果中,我们看到是由三个界面组成:点我界面, 设置界面, 自动返回界面组成,并实现了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就不贴出来了.

以上,大家就可以实现了