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
分享到:
相关推荐
自定义spinner控件的一个优点是它可以方便地与其他组件集成,比如可以配合SharedPreferences来持久化用户的设置,或者与网络请求结合,动态加载数据。通过这种方式,我们能实现更复杂的功能,如异步加载选项、搜索...
综上所述,自定义一个多选Spinner控件涉及多个环节,包括Adapter的设计、多选和全选逻辑的实现、界面交互优化以及数据持久化等。通过这样的定制,我们不仅可以满足用户对多选功能的需求,还能在一定程度上提升应用的...
5. 还需要注意的是,为了保持数据一致性,我们可能需要在应用保存状态时保存用户自定义的值,并在恢复时重新加载到Spinner。 这样的可编辑Spinner在实际应用中可以用于输入自定义的搜索关键词、设置自定义的标签等...
然而,原始的Spinner控件并不支持用户直接输入新的值,这在某些场景下可能会限制其功能。标题提到的“可输入的Spinner”就是对原生Spinner的一种扩展,它结合了输入框和下拉列表的功能,用户不仅能从已有的选项中...
本篇文章将深入探讨如何在ListView中集成和使用Spinner,以及解决与之相关的事件处理和状态保持问题。 首先,Spinner的基本用法包括创建Spinner对象、设置Adapter和定义监听器。在Android中,Spinner通常通过...
Spinner控件在Android中通常用于创建一个下拉菜单,它允许用户在一组预定义的选项中进行选择。使用Spinner,可以节省屏幕空间,因为它只显示一个选项,其余选项则隐藏在下拉列表中。在创建Spinner时,你需要设置一个...
- 在布局XML文件中,可以使用`<Spinner>`标签来声明Spinner控件,并通过`android:entries`属性指定数据源。 - 在Java代码中,可以通过`setAdapter()`方法设置适配器,并使用`setOnItemSelectedListener()`监听用户...
2. 在`EditText`中监听文本变化,当用户完成输入并点击“记住我”时,将数据保存到数据库。 3. 当应用启动时,检查是否需要自动填充账号和密码,如果是,则从数据库读取数据并填充到`EditText`。 4. 创建`Spinner`或...
在Android开发中,Spinner是一个非常常见的控件,它通常用于展示一个下拉列表供用户选择。本教程将详细讲解如何在Android Studio 3.0.1环境下实现Spinner的多选功能,这对于创建交互式用户界面非常有用。 首先,...
3. **关联Spinner与EditText**:通过监听`Spinner`的`OnItemSelectedListener`事件,当用户选择了一个用户名,将其值更新到`EditText`中。 4. **触发PopupWindow显示**:在`EditText`上添加一个点击事件监听器,当...
在Android开发中,基础控件是构建用户界面(UI)的核心元素。...通过`AndroidBaseDemo`,开发者能够深入学习到如何获取控件的值,以及如何在不同的页面间传递数据,这对于任何Android开发者的成长都是非常关键的。
总结,数字标识控件在安卓开发中扮演着关键角色,它们提供了用户与数字数据交互的方式。开发者需要理解并熟练运用各种控件,以及自定义控件的技巧,以实现功能丰富且用户体验良好的应用。同时,关注响应式设计、数据...
可以与后台数据源绑定,实现数据的自动更新和保存。 9. **交互设计**: 设计良好的数字控件应该直观易用,提供触控支持,对于移动设备要考虑手势操作。 10. **编程示例**: 使用特定的编程语言(如C#、Java、...
Spinner是Android提供的一个下拉选择控件,用户可以点击它来展示一个下拉菜单,通常用于展示有限的选项列表。在本项目中,Spinner用于展示省、市、区三个级别的列表。 1. 数据结构设计: - 省市区数据通常存储在...
Spinner是Android中的一个下拉选择控件,它可以展示一个下拉菜单供用户选择,非常适合用来构建这种联动效果。 首先,我们需要理解Spinner的基本用法。Spinner有三种使用方式:直接在布局文件中声明、通过代码动态...
5. **数据绑定**:QML的强大之处在于它的数据绑定特性,可以将数据模型与视图直接关联。在日历控件中,我们可能需要绑定当前月份、年份等信息,并根据这些信息动态更新日历的显示。 6. **可扩展性**:虽然这个日历...
Spinner通常与ArrayAdapter或CursorAdapter配合使用,通过数据源(如数组或数据库查询结果)来显示选项。用户点击Spinner后,会弹出一个对话框展示所有可选项,用户从中选取一项,然后关闭对话框,显示选定的值。 ...
实验的一个关键部分是使用Spinner控件。Spinner是Android中的下拉列表,通常用于提供一组可选择的选项。在实验中,首先通过静态数组(arrays.xml)填充Spinner,这是一种简单的方法,可以直接在XML资源文件中定义选项...
这通常通过EditText控件来实现,日期选择器可以用DatePicker,而支出/收入类型则可以通过RadioButton或Spinner来选择。 3. **保存数据到文件**: 当用户点击“保存”按钮时,应用需要将这些数据写入到SD卡的根目录...