基于HTTP系统的扩展(sharedpreference)
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存,它是什么样的处理方式呢?
SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问,android123提示最终是以xml方式来保存,整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml 处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。
注意:sharedPreference在同一个activity里边没有使用的价值。需要在不同的activity间数据传递时候使用。也就是说你在A里边设置编辑保存了一个数据,这个数据其实已经被android系统存储在data/下边的一个xml文件中。你在B里边可以对该文件进行读取操作。然后对数据做相关的处理。刚才我傻乎乎的在一个activity里边进行操作,自我鄙视一把。
在之前写的系统基础上,引入sharedpreferences.这样相当于在程序中设置了一个数据库。这个数据库是键值对形式的保存在程序的data/文件夹目录下。在整个程序内部都可以使用宝宝尊在该数据库中的信息。例如;我在第三个页面中对数据进行编辑,然后commit()操作。然后在第四个页面,自动获取存储了的数据。然后显示在页面上。核心代码如下:
package com.example; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class Third extends Activity { private Button mButton; private TextView mTextView; private EditText mEditText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.third); mButton = (Button)findViewById(R.id.thirdButton); mEditText = (EditText)findViewById(R.id.thirdEditText); // SharedPreferences settings = getPreferences(MODE_PRIVATE); // SharedPreferences.Editor editor = settings.edit(); // editor.putInt("age", 200); // editor.putString("manong", mEditText.getText().toString()); // editor.commit(); // // SharedPreferences datas = getPreferences(MODE_PRIVATE); // String data = datas.getString("manong", "0"); // mTextView.setText(data); // SharedPreferences third = getSharedPreferences("manong", 0); SharedPreferences.Editor editor = third.edit(); editor.putString("xiaojiang","PHP高级研究"); editor.commit(); mButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(Third.this,Forth.class); startActivity(intent); } }); } } package com.example; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.widget.TextView; public class Forth extends Activity{ private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.forth); mTextView = (TextView)findViewById(R.id.TextView); SharedPreferences forthdata = getSharedPreferences("manong", 0); String dataString = forthdata.getString("xiaojian","NULL"); mTextView.setText(dataString); } }
运行截图如下: