`
lx82319214
  • 浏览: 109966 次
  • 性别: Icon_minigender_1
  • 来自: 贵州
社区版块
存档分类
最新评论

数据保存与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;
	}
}

 

  • 大小: 41.1 KB
  • 大小: 41.4 KB
分享到:
评论

相关推荐

    Android 自定义spinner控件下拉框实现

    自定义spinner控件的一个优点是它可以方便地与其他组件集成,比如可以配合SharedPreferences来持久化用户的设置,或者与网络请求结合,动态加载数据。通过这种方式,我们能实现更复杂的功能,如异步加载选项、搜索...

    自定义Spinner控件

    综上所述,自定义一个多选Spinner控件涉及多个环节,包括Adapter的设计、多选和全选逻辑的实现、界面交互优化以及数据持久化等。通过这样的定制,我们不仅可以满足用户对多选功能的需求,还能在一定程度上提升应用的...

    Android可编辑Spinner

    5. 还需要注意的是,为了保持数据一致性,我们可能需要在应用保存状态时保存用户自定义的值,并在恢复时重新加载到Spinner。 这样的可编辑Spinner在实际应用中可以用于输入自定义的搜索关键词、设置自定义的标签等...

    可输入的Spinner

    然而,原始的Spinner控件并不支持用户直接输入新的值,这在某些场景下可能会限制其功能。标题提到的“可输入的Spinner”就是对原生Spinner的一种扩展,它结合了输入框和下拉列表的功能,用户不仅能从已有的选项中...

    ListView中Spinner的使用

    本篇文章将深入探讨如何在ListView中集成和使用Spinner,以及解决与之相关的事件处理和状态保持问题。 首先,Spinner的基本用法包括创建Spinner对象、设置Adapter和定义监听器。在Android中,Spinner通常通过...

    Android应用源码之37.Spinner和Auto_Complete控件学习-IT计算机-毕业设计.zip

    Spinner控件在Android中通常用于创建一个下拉菜单,它允许用户在一组预定义的选项中进行选择。使用Spinner,可以节省屏幕空间,因为它只显示一个选项,其余选项则隐藏在下拉列表中。在创建Spinner时,你需要设置一个...

    Android-可以记住历史选项的Androidspinner

    - 在布局XML文件中,可以使用`&lt;Spinner&gt;`标签来声明Spinner控件,并通过`android:entries`属性指定数据源。 - 在Java代码中,可以通过`setAdapter()`方法设置适配器,并使用`setOnItemSelectedListener()`监听用户...

    spinner+listview

    2. 在`EditText`中监听文本变化,当用户完成输入并点击“记住我”时,将数据保存到数据库。 3. 当应用启动时,检查是否需要自动填充账号和密码,如果是,则从数据库读取数据并填充到`EditText`。 4. 创建`Spinner`或...

    android studio,demo,Spinner下拉菜单多选的实现

    在Android开发中,Spinner是一个非常常见的控件,它通常用于展示一个下拉列表供用户选择。本教程将详细讲解如何在Android Studio 3.0.1环境下实现Spinner的多选功能,这对于创建交互式用户界面非常有用。 首先,...

    android edittext spinner popupwindow

    3. **关联Spinner与EditText**:通过监听`Spinner`的`OnItemSelectedListener`事件,当用户选择了一个用户名,将其值更新到`EditText`中。 4. **触发PopupWindow显示**:在`EditText`上添加一个点击事件监听器,当...

    AndroidBaseDemo基本控件使用示例

    在Android开发中,基础控件是构建用户界面(UI)的核心元素。...通过`AndroidBaseDemo`,开发者能够深入学习到如何获取控件的值,以及如何在不同的页面间传递数据,这对于任何Android开发者的成长都是非常关键的。

    数字标识控件.zip

    总结,数字标识控件在安卓开发中扮演着关键角色,它们提供了用户与数字数据交互的方式。开发者需要理解并熟练运用各种控件,以及自定义控件的技巧,以实现功能丰富且用户体验良好的应用。同时,关注响应式设计、数据...

    comp专为数字的控件

    可以与后台数据源绑定,实现数据的自动更新和保存。 9. **交互设计**: 设计良好的数字控件应该直观易用,提供触控支持,对于移动设备要考虑手势操作。 10. **编程示例**: 使用特定的编程语言(如C#、Java、...

    Android 省市区三级连动--spinner-IT计算机-毕业设计.zip

    Spinner是Android提供的一个下拉选择控件,用户可以点击它来展示一个下拉菜单,通常用于展示有限的选项列表。在本项目中,Spinner用于展示省、市、区三个级别的列表。 1. 数据结构设计: - 省市区数据通常存储在...

    Android实现省市区三级联动效果 Spinner

    Spinner是Android中的一个下拉选择控件,它可以展示一个下拉菜单供用户选择,非常适合用来构建这种联动效果。 首先,我们需要理解Spinner的基本用法。Spinner有三种使用方式:直接在布局文件中声明、通过代码动态...

    QML 简单日历控件

    5. **数据绑定**:QML的强大之处在于它的数据绑定特性,可以将数据模型与视图直接关联。在日历控件中,我们可能需要绑定当前月份、年份等信息,并根据这些信息动态更新日历的显示。 6. **可扩展性**:虽然这个日历...

    Android 下拉列表 可手动输入

    Spinner通常与ArrayAdapter或CursorAdapter配合使用,通过数据源(如数组或数据库查询结果)来显示选项。用户点击Spinner后,会弹出一个对话框展示所有可选项,用户从中选取一项,然后关闭对话框,显示选定的值。 ...

    16337233_王凯祺_控件布局实验1

    实验的一个关键部分是使用Spinner控件。Spinner是Android中的下拉列表,通常用于提供一组可选择的选项。在实验中,首先通过静态数组(arrays.xml)填充Spinner,这是一种简单的方法,可以直接在XML资源文件中定义选项...

    Android中使用File保存账单数据应用的任务要求.pdf

    这通常通过EditText控件来实现,日期选择器可以用DatePicker,而支出/收入类型则可以通过RadioButton或Spinner来选择。 3. **保存数据到文件**: 当用户点击“保存”按钮时,应用需要将这些数据写入到SD卡的根目录...

Global site tag (gtag.js) - Google Analytics