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);
}});

猜你喜欢

转载自blog.csdn.net/qq_43216714/article/details/124762860