基于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  码农小江  阅读(327)  评论(0编辑  收藏  举报