编写一个程序功能用sharedpreferences存储的数据,怎么添加一个删除存储的数据功能
时间: 2023-06-15 17:08:07 浏览: 51
要添加一个删除存储数据的功能,你需要先在你的应用程序中找到存储的数据,然后使用SharedPreferences.Editor类中的remove()方法来删除它。
以下是一个简单的示例代码,说明如何实现这个功能:
```java
// 获取SharedPreferences实例
SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
// 获取SharedPreferences.Editor实例
SharedPreferences.Editor editor = sharedPreferences.edit();
// 删除存储的数据
editor.remove("key"); // key是你要删除的数据的键
// 提交更改
editor.apply();
```
在这个示例代码中,我们首先获取了SharedPreferences实例。然后,我们获取SharedPreferences.Editor实例,使用remove()方法删除存储的数据。最后,我们通过调用apply()方法提交更改。
需要注意的是,如果你要删除多个存储的数据,可以多次调用remove()方法,每次传入不同的键值。
相关问题
1、编写一个Android APP,使用SharedPreferences记录按钮被点击次数(程序退出或者手机断电不会被清零)。演示过程并在ddms中查看数据存储。
好的,以下是实现记录按钮被点击次数并使用SharedPreferences存储的示例代码:
1. 在布局文件中添加一个按钮:
```
<Button
android:id="@+id/btn_click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击按钮"/>
```
2. 在MainActivity类中,声明SharedPreferences对象和按钮对象,并在onCreate方法中获取按钮对象和SharedPreferences对象:
```
public class MainActivity extends AppCompatActivity {
private Button btnClick;
private SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnClick = findViewById(R.id.btn_click);
prefs = getSharedPreferences("button_click_count", MODE_PRIVATE);
int clickCount = prefs.getInt("click_count", 0);
btnClick.setText("点击次数:" + clickCount);
btnClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int clickCount = prefs.getInt("click_count", 0);
clickCount++;
btnClick.setText("点击次数:" + clickCount);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("click_count", clickCount);
editor.apply();
}
});
}
}
```
3. 完成以上步骤后,运行应用程序,点击按钮,可以看到按钮上的文本会显示点击次数。此时,在DDMS中选择当前应用程序的包名,然后选择File Explorer,找到/data/data/包名/shared_prefs/目录,可以看到名为button_click_count.xml的文件,其中存储了按钮被点击次数的数据。
希望这个示例代码可以帮助您实现使用SharedPreferences记录按钮被点击次数。
编写一个用户登录的程序,要求登录的用户名和密码存入到SharedPreferences。
以下是一个简单的用户登录程序,实现了将用户名和密码存储到SharedPreferences中,以及登录时的验证:
```java
public class LoginActivity extends AppCompatActivity {
private EditText etUsername;
private EditText etPassword;
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);
sharedPreferences = getSharedPreferences("user_info", MODE_PRIVATE);
String savedUsername = sharedPreferences.getString("username", "");
String savedPassword = sharedPreferences.getString("password", "");
if (!TextUtils.isEmpty(savedUsername) && !TextUtils.isEmpty(savedPassword)) {
etUsername.setText(savedUsername);
etPassword.setText(savedPassword);
}
Button btnLogin = findViewById(R.id.btn_login);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = etUsername.getText().toString();
String password = etPassword.getText().toString();
if (TextUtils.isEmpty(username)) {
Toast.makeText(LoginActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(LoginActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
return;
}
String savedUsername = sharedPreferences.getString("username", "");
String savedPassword = sharedPreferences.getString("password", "");
if (username.equals(savedUsername) && password.equals(savedPassword)) {
Toast.makeText(LoginActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
finish();
} else {
Toast.makeText(LoginActivity.this, "用户名或密码错误", Toast.LENGTH_SHORT).show();
}
}
});
Button btnRegister = findViewById(R.id.btn_register);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onResume() {
super.onResume();
String savedUsername = sharedPreferences.getString("username", "");
String savedPassword = sharedPreferences.getString("password", "");
if (!TextUtils.isEmpty(savedUsername) && !TextUtils.isEmpty(savedPassword)) {
etUsername.setText(savedUsername);
etPassword.setText(savedPassword);
}
}
}
```
在登录界面,我们首先从SharedPreferences中读取保存的用户名和密码,如果存在,则填充到对应的EditText中。当用户点击登录按钮时,我们获取用户输入的用户名和密码,并与SharedPreferences中保存的用户名和密码进行比对,如果匹配,则登录成功,否则提示用户用户名或密码错误。如果用户点击注册按钮,则跳转到注册界面。
在注册界面,我们通过SharedPreferences将新注册的用户名和密码保存起来:
```java
public class RegisterActivity extends AppCompatActivity {
private EditText etUsername;
private EditText etPassword;
private SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
etUsername = findViewById(R.id.et_username);
etPassword = findViewById(R.id.et_password);
sharedPreferences = getSharedPreferences("user_info", MODE_PRIVATE);
Button btnRegister = findViewById(R.id.btn_register);
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = etUsername.getText().toString();
String password = etPassword.getText().toString();
if (TextUtils.isEmpty(username)) {
Toast.makeText(RegisterActivity.this, "请输入用户名", Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(RegisterActivity.this, "请输入密码", Toast.LENGTH_SHORT).show();
return;
}
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.apply();
Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
finish();
}
});
}
}
```
在注册界面,我们首先获取用户输入的用户名和密码,然后通过SharedPreferences将其保存起来。保存完成后,提示用户注册成功,并关闭注册界面。