用SharedPreferences的方法来把数据存储在本地。
由于是按键值存储读取的,使用起来比文件存储方便多。
运行效果:
点击SAVE DATA存储数据
点击RESTORE DATA可以在日志Logcat中看到输出
文件目录:
MainActivity:
package com.example.sharedpreferencestest;
import androidx.appcompat.app.AppCompatActivity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button saveData=(Button)findViewById(R.id.save_data);
saveData.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
SharedPreferences.Editor editor=getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putInt("age",28);
editor.putBoolean("married",false);
editor.apply();
}
});
Button restoreData=(Button)findViewById(R.id.restore_data);
restoreData.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
SharedPreferences pref=getSharedPreferences("data",MODE_PRIVATE);
String name=pref.getString("name","");
int age=pref.getInt("age",0);
boolean married=pref.getBoolean("mnarried",false);
Log.d("MainActivity","name is"+name);
Log.d("MainActivity","age is "+age);
Log.d("MainActivity","married is "+married);
}
});
}
}
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/save_data"
android:text="Save data"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/restore_data"
android:text="Restore data"
/>
</LinearLayout>