数据保存与Spinner控件

Perference轻量级数据保存

用例请自己下载代码

图片示例在附件

轻量级数据就是、我这次启动了一个activity选择了某一项以后、当下次我再次启动时候还会出现本次选择的内容

就像编辑短信一样、当我编辑了一点内容后、关闭编辑窗口、当我再次打开编辑窗口时候将还会有上次编辑的内容

 

 

Activity里面代码如下

package com.hhj.spinner;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import com.hhj.spinner.R.id;

public class Activity01 extends Activity {
	final static int WRAP_CONETNT = -2;// 表示WRAP_CONTENT的常量
	int numberselect;
	// 所有资源的图片(足球、篮球、排球) id的数组
	int[] drawableIds = { R.drawable.football, R.drawable.basketball,
			R.drawable.volleyball };
	// 所有资源字符串 (足球、篮球、排球) id的数组
	int[] msgIds = { R.string.zp, R.string.lq, R.string.pq };

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		//获取上次保存选择的类型
		SharedPreferences prefs = getSharedPreferences("selecenumber", MODE_PRIVATE);
		int select = prefs.getInt("number", 0);
		Toast.makeText(Activity01.this, "你上次保存的数字是"+select, 3).show();
		
		Spinner sp = (Spinner) findViewById(R.id.Spinner01);
		Button btn = (Button)findViewById(R.id.spinnerBtn);
		btn.setOnClickListener(new View.OnClickListener() {
			public void onClick(View v) {
				finish();
			}
		});
		BaseAdapter ba = new BaseAdapter() {
			public int getCount() {
				// 一共三个选项
				return 3;
			}
			public Object getItem(int position) {
				return null;
			}
			public long getItemId(int position) {
				return 0;
			}
			public View getView(int position, View convertView, ViewGroup parent) {
				// 动态生成每个下拉项对应的View,每个下拉项View由LinearLayout
				// 中包含一个ImageView及一个TextView构成
				// 初始化LinearLayout
				LinearLayout ll = new LinearLayout(Activity01.this);
				ll.setOrientation(LinearLayout.HORIZONTAL);
				// 初始化ImageView
				ImageView ii = new ImageView(Activity01.this);
				ii.setImageDrawable((getResources()
						.getDrawable(drawableIds[position])));
				ll.addView(ii);
				// 初始化TextView
				TextView tv = new TextView(Activity01.this);
				tv.setText(" " + getResources().getText(msgIds[position]));
				tv.setTextColor(R.color.black);
				tv.setTextSize(24);
				ll.addView(tv);
				return ll;
			}
		};
		// 为Spinner设置内容适配器
		sp.setAdapter(ba);
		//让适配器默认选中上次选中记录项
		sp.setSelection(select, true);
		sp.setOnItemSelectedListener(new OnItemSelectedListener() {
			public void onItemSelected(AdapterView<?> parent, View view,
					int position, long id) {
				// 获取主界面TextView
				TextView tv = (TextView) findViewById(R.id.TextView01);
				// 获取当前选中选项对应的LinearLayout
				LinearLayout ll = (LinearLayout) view;
				// 获取其中的TextView
				TextView tvn = (TextView) ll.getChildAt(1);
				// 用StringBuilder动态生成信息
				StringBuilder sb = new StringBuilder();
				sb.append(getResources().getText(R.string.ys));
				sb.append(":");
				sb.append(tvn.getText());
				// 信息设置进住界面
				tv.setText(sb.toString());
				//将数据保存
				numberselect=position;
				onStop();
				Toast.makeText(Activity01.this, "你选择的是哪个个数字"+position, 3).show();
			}

			public void onNothingSelected(AdapterView<?> parent) {
			}
		});
	}

	protected void onStop(){
		super.onStop();
		SharedPreferences.Editor editor = getSharedPreferences("selecenumber", MODE_PRIVATE).edit();
		editor.putInt("number", numberselect);
		editor.commit();
	}
	private Button findViewById(Class<id> class1) {
		// TODO Auto-generated method stub
		return null;
	}
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值