Android 关于数据存储的小案例——SharedPreferences存储方式
2017-04-10 17:29
447 查看
SharedPreferences存储方式是Android平台上一个轻量级的存储类,主要是用于存储一些应用程序的配置参数。例如用户名、密码、自定义参数的设置等。SharedPreferences中存储的数据是以key/value键值对的形式保存在XML文件中,该文件位于data/data/<packagename>/shared_prefs文件夹中。需要注意的是:SharedPreferences中的value值只能是float、int、long、boolean、String、StringSet类型数据。
在使用SharedPreferences存储方式进行存储,首先要通过context.getSharedPreferences(Stringname、int、mode)获取SharedPreferences的实例对象(在Activity中可以直接使用this代表上下文,如果不是则需要传一个Context对象获取上下文)。
我这次演示的小案例如下图:
具体实现步骤如下:
一、首先要先进行界面布局的设置,观察布局需要的控件,准备好布局需要的图片,调整布局的美观设置,使布局看起来更加人性化,更加富有美感。
上面这是布局文件。各个布局的代码如下:
1、activity_login.xml布局代码:
2、activity_main.xml布局代码:
3、login_top.xml布局代码:
4、LoginActivity具体代码如下:
5、MainActivity具体代码:
二、总结
通过对布局和Activity组件等代码进行设计编写,通过理解案例的意图,来选择适当地方法进行编译,以及对于SharedPreferences存储方式的理解,来完成界面数据的存储。
以上就是这次案例的代码和方法。如果有不足之处还望指出。
~谢谢浏览~
在使用SharedPreferences存储方式进行存储,首先要通过context.getSharedPreferences(Stringname、int、mode)获取SharedPreferences的实例对象(在Activity中可以直接使用this代表上下文,如果不是则需要传一个Context对象获取上下文)。
我这次演示的小案例如下图:
具体实现步骤如下:
一、首先要先进行界面布局的设置,观察布局需要的控件,准备好布局需要的图片,调整布局的美观设置,使布局看起来更加人性化,更加富有美感。
上面这是布局文件。各个布局的代码如下:
1、activity_login.xml布局代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_login" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:background="@drawable/loginbg" tools:context="com.example.administrator.case_login.LoginActivity"> <include layout="@layout/login_top"></include> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/deer" android:id="@+id/imageView" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> </RelativeLayout>
2、activity_main.xml布局代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.administrator.case_login.MainActivity"> <TextView android:text="Welcome you!" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:id="@+id/textView" /> </RelativeLayout>
3、login_top.xml布局代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/activity_horizontal_margin" android:background="@drawable/logintoproundbg"> <EditText android:id="@+id/etName" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:drawable/edit_text" android:drawableLeft="@drawable/icon_user" android:drawablePadding="10dp" android:ems="10" android:hint="@string/etName"> </EditText> <requestFocus/> <EditText android:id="@+id/etPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/etName" android:background="@android:drawable/edit_text" android:drawableLeft="@drawable/icon_pass" android:drawablePadding="10dp" android:ems="10" android:hint="@string/etPass" android:inputType="textPassword" > <requestFocus/> </EditText> <LinearLayout android:layout_below="@id/etPassword" android:layout_width="match_parent" android:layout_height="wrap_content"> <CheckBox3 android:text="记住密码" android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/cbs1" android:textSize="20sp" android:layout_weight="1" /> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/btn_select" android:onClick="login" android:text="@string/btnLogin" /> </LinearLayout> </RelativeLayout>
4、LoginActivity具体代码如下:
public class LoginActivity extends AppCompatActivity { private EditText etName; private EditText etPassword; private CheckBox cbs1; private SharedPreferences sharePreferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); initViews(); sharePreferences=getSharedPreferences("rememberpassword",Context.MODE_PRIVATE); boolean isremember=sharePreferences.getBoolean("rememberpassword",false); if (isremember){ String name=sharePreferences.getString("name",""); String password=sharePreferences.getString("password",""); etName.setText(name); etPassword.setText(password); cbs1.setChecked(true); } } private void initViews() { etName= (EditText) findViewById(R.id.etName); etPassword= (EditText) findViewById(R.id.etPassword); cbs1= (CheckBox) findViewById(R.id.cbs1); } public void login(View view){ String name=etName.getText().toString(); String password=etPassword.getText().toString(); if("guoting".equals(name)&&"123456".equals(password)){ SharedPreferences.Editor editor=sharePreferences.edit(); if(cbs1.isChecked()){ editor.putBoolean("rememberpassword",true); editor.putString("name",name); editor.putString("password",password); }else{ editor.clear(); } editor.commit(); Intent intent=new Intent(this,MainActivity.class); startActivity(intent); finish(); }else{ Toast.makeText(this,"账号或密码有误",Toast.LENGTH_LONG).show(); } } }
5、MainActivity具体代码:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
二、总结
通过对布局和Activity组件等代码进行设计编写,通过理解案例的意图,来选择适当地方法进行编译,以及对于SharedPreferences存储方式的理解,来完成界面数据的存储。
以上就是这次案例的代码和方法。如果有不足之处还望指出。
~谢谢浏览~
相关文章推荐
- Android中关于数据存储的方式--文件存储
- Android数据存储和访问之SharedPreferences存储方式_用户登录记住密码案例
- 关于Android开发数据存储的方式(一)
- 关于Android开发数据存储的方式(一)
- 关于Android数据存储方式(二)——SQLite
- 关于Android数据存储方式(一)——SharedPreferences
- Android 数据存储和文件使用案例分析
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- Android的数据存储方式
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- Android开发之数据存储之二:SQLite数据库存储方式【免费提供源码下载】
- Android为数据存储提供几种方式
- Android 数据存储的一种最简单的方式 SharedPreferences
- 【Android游戏开发十三】(保存游戏数据 [下文])详解SQLite存储方式,并把SQLite的数据库文件存储在SD卡中!!!
- Android应用程序的常见数据存储方式小结
- Android实战技巧:数据存储方式
- Android 数据存储和文件使用案例分析
- Android的数据存储方式
- Android的数据存储方式
- Android中的文件存储数据方式