基于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);
         
         
    }
 
}

 运行截图如下:

 

posted @ 2012-05-12 21:07  码农小江  阅读(330)  评论(0)    收藏  举报
点击右上角即可分享
微信分享提示