写一个安卓代码,要求如下:2.编写登录界面随时随地退出程序和记住密码功能 编写代码,采用SharedPreferences存储实现记住账号密码功能,点击“取消”或返回键可以随时随地退出程序。点击“登录”按钮跳转到MsgListActivity。
时间: 2024-03-24 12:39:50 浏览: 92
好的,以下是实现以上要求的安卓代码:
首先,我们需要在布局文件中创建登录界面的UI,包括账号输入框、密码输入框、记住密码复选框和登录按钮。在布局文件中添加以下代码:
```
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/et_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入账号"
android:inputType="text"
android:padding="16dp" />
<EditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入密码"
android:inputType="textPassword"
android:padding="16dp"
android:layout_below="@+id/et_username" />
<CheckBox
android:id="@+id/cb_remember"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/et_password"
android:text="记住密码"
android:padding="16dp" />
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/cb_remember"
android:text="登录"
android:padding="16dp" />
</RelativeLayout>
```
接下来,我们需要在登录界面的Activity中实现记住密码和退出功能。在Activity中添加以下代码:
```
public class LoginActivity extends AppCompatActivity {
private EditText etUsername;
private EditText etPassword;
private CheckBox cbRemember;
private Button btnLogin;
private SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
etUsername = findViewById(R.id.et_username);
etPassword = findViewById(R.id.et_password);
cbRemember = findViewById(R.id.cb_remember);
btnLogin = findViewById(R.id.btn_login);
sharedPreferences = getSharedPreferences("login", Context.MODE_PRIVATE);
String username = sharedPreferences.getString("username", "");
String password = sharedPreferences.getString("password", "");
if (!TextUtils.isEmpty(username) && !TextUtils.isEmpty(password)) {
etUsername.setText(username);
etPassword.setText(password);
cbRemember.setChecked(true);
}
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = etUsername.getText().toString();
String password = etPassword.getText().toString();
if (cbRemember.isChecked()) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.apply();
} else {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.clear();
editor.apply();
}
Intent intent = new Intent(LoginActivity.this, MsgListActivity.class);
startActivity(intent);
finish();
}
});
}
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
}
```
在上面的代码中,我们首先获取了布局文件中的各个控件,然后获取了SharedPreferences实例,并从中获取了已经保存的账号和密码。接着,我们在登录按钮的点击事件中判断是否勾选了记住密码,如果勾选了,则将账号和密码保存到SharedPreferences中;否则,清空SharedPreferences中保存的数据。最后,我们跳转到MsgListActivity,并在返回键按下时退出程序。
注意:在退出程序时,我们调用了finish()方法,这个方法会销毁当前Activity,并从Activity栈中移除。
阅读全文