利用同一个Activity界面实现二个不同的界面之间的跳转
2017-06-08 15:02
681 查看
先看图,再描述
上图的效果中,我们看到是由三个界面组成:点我界面, 设置界面, 自动返回界面组成,并实现了checkBox保存状态和弹出dialog.
但是实际上,只用了点我界面和设置界面(和自动返回界面共用一个界面).
所以实现如下:分散实现如下
第一步:checkBox的保存状态
第二步,界面之间的跳转
//dialog和sharePrefrence就不贴出来了.
以上,大家就可以实现了
上图的效果中,我们看到是由三个界面组成:点我界面, 设置界面, 自动返回界面组成,并实现了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就不贴出来了.
以上,大家就可以实现了
相关文章推荐
- 如何实现在一个界面上点击不同的位置,会有跳转到不同的Activity上(假设背景是一个图片)
- 点击多个URL跳转多个不同界面使用一个Activity实现
- android中如何实现进入一个界面不做任何动作过10秒钟自动跳转到其他activity?
- android中如何实现进入一个界面不做任何动作过10秒钟(有操作从新计时)自动跳转到待机activity,点击待机界面回到原来的界面
- 喜欢萌到爆可爱到爆的阿狸吗?本周利用所学知识实现了一个登陆界面的跳转,先看看最终效果吧~
- 安卓开发之如何利用Intent对象,实现Activity和另一个Activity之间的跳转
- Android 写一个Activity之间来回跳转的全局工具类(主要是想实现代码的复用)
- 【Android】使用Intent实现Activity之间的跳转(创建一个Activity的过程)
- android中如何实现进入一个界面不做任何动作过10秒钟自动跳转到其他activity?
- 用接口实现,在非跳转情况下,一个界面向Activity传数据
- 利用Intent实现两个Activity之间的跳转
- android中利用代理模式简单实现界面之间的跳转与传值
- 安卓startActivityForResult实现多个Activity之间不同跳转流程
- 一个操作系统的实现 不同特权级代码段之间的跳转 CPL DPL RPL 调用门
- 利用Intent实现多个Activity之间的跳转
- 点击一个按钮实现在不同对话框之间的切换,帮忙看下这代码能不能这样写,为什么不对呀
- Android setContentView 实现同一个activity下不同view的切换
- 【Android游戏开发之五】游戏注册界面Demo-实现两个Activity之间的切换与数据交互!
- 使用Intent实现Activity之间传值与跳转
- 【从头学android】在两个Activity之间实现界面切换