Android 程序题01

程序中包含两个页面:LoginActivity 和 MainActivity,启动页面为LoginActivity。已知LoginActivity中包含一个EditText(id为et_name),供用户输入登录账号;一个CheckBox(id为cb_save),供用户勾选是否保存账号选项;一个Button(id为btn_login),显示文字为“登录”。

请根据以下要求编写程序:

  1. 启动程序后,先判断用户账号是否已保存,若账号已保存(将其从文件加载到页面中的文本框中),则直接进入MainActivity页面。

  2. 若用户账号未保存,则进入LoginActivity页面,用户输入账号后,单击“登录”按钮时,若账号为空,则用Toast提示用户“账号不能为空!”。

    1. 若“保存账号”处于选中状态,则将用户账号使用SharedPreferences存储到文件”data.xml”中(使用内部存储存储到文件user.data中),并跳转到MainActivity页面。
    2. 若“保存账号”处于未选中状态,则不保存用户账号信息,直接跳转到MainActivity页面。

请在下面写出问题 1 的处理逻辑:

EditText etName = findViewById(R.id.et_name);
Button btnLogin = findViewById(R.id.btn_login);
CheckBox cbSave= findViewById(R.id.cb_save);
SharedPreferences sp = this.getSharedPreferences("data",MODE_PRIVATE);
String account= sp.getString("account","");//获取保存的账号      
if(data == null) {
    Intent intent = new Intent(MainActivity.this, LoginActivity.class);
    startActivity(intent);
}
//把账号设置到文本框里 
etName.setText(account);
cbSave.setChecked(true);//设置选中

请在下面写出问题 2 的处理逻辑:

EditText etName = findViewById(R.id.et_name);
Button btnLogin = findViewById(R.id.btn_login);
CheckBox cbSave= findViewById(R.id.cb_save);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {  
    if(v.getId == R.id.btn_login){//点击了登录按钮
      //判断账号是否输入
      String account = etName.getText().toString().trim();
      if (TextUtils.isEmpty(account)){
          	//没输入代码提示:账号不能为空!
            Toast.makeText(this, "账号不能为空!", Toast.LENGTH_SHORT).show();
            return;
      }
      //选中保存的话,数据保存到文件
     if(cbSave.isChecked()) {
        SharedPreferences sp = context.getSharedPreferences("data",Context.MODE_PRIVATE);
        SharedPreferences.Editor edit = sp.edit();
        edit.putString("account", account); 
        edit.commit();
     }
     //否则直接跳转到主页面
      Intent intent = new Intent(LoginActivity.this, MainActivity.class);
      startActivity(intent);
}});
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小源同学r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值