利用同一个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就不贴出来了.
以上,大家就可以实现了
阅读全文
0 0
- 利用同一个Activity界面实现二个不同的界面之间的跳转
- 界面之间的跳转
- 同一个activity中不同fragment的跳转
- 安卓欢迎界面和activity之间的跳转问题
- 点击多个URL跳转多个不同界面使用一个Activity实现
- Android界面之间的跳转
- 实现界面的跳转
- TableViewCell 点击跳转多个不同的界面
- android中利用代理模式简单实现界面之间的跳转与传值
- Activity界面之间的动画
- Android实现两个Activity界面的跳转并传值
- Android实现跳转到外部应用的某个Activity界面
- J2ME高级界面实现页面之间的跳转
- J2ME高级界面实现页面之间的跳转
- Android显示提示信息,实现两个界面之间的跳转
- 界面跳转(同一个界面)
- 利用ImageView + fragment 实现类似QQ消息界面的 点击不同按钮 展示不同界面
- 利用Intent实现两个Activity之间的跳转
- 模型/视图实战之仿QQ好友列表面板
- java MessagePack的数据处理
- php接收post原始数据
- 计算a+b的和
- mysql存储过程,结果集遍历,if -else
- 利用同一个Activity界面实现二个不同的界面之间的跳转
- Android开发之高级渲染
- LevelDB:一个快速轻量级的key-value存储库(译)
- EventBus使用详解(一)——初步使用EventBus
- C# DataTable 用法
- 高性能队列Disruptor的使用
- 反汇编下的字符运算
- HDU4902 线段树
- 【动态规划11】vijos1243生产产品(dp+单调队列)