• Android Spinner + SharedPreferences 保存上一次选择的值


    android下拉可选菜单Spinner创建:
    1, 创建一个HelloSpinner的android project
    2, 修改main.xml文件:

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:padding="10dip"     android:layout_width="fill_parent"     android:layout_height="wrap_content">     <TextView         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:layout_marginTop="10dip"         android:text="@string/planet_prompt"     />     <Spinner          android:id="@+id/spinner"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:prompt="@string/planet_prompt"     /> </LinearLayout>    3, 修改strings.xml文件,添加: <?xml version="1.0" encoding="utf-8"?> <resources>     <string name="planet_prompt">Choose a planet</string>     <string-array name="planets_array">         <item>Mercury</item>         <item>Venus</item>         <item>Earth</item>         <item>Mars</item>         <item>Jupiter</item>         <item>Saturn</item>         <item>Uranus</item>         <item>Neptune</item>     </string-array> </resources>  4, 修改HelloSpinner.java文件中的OnCreate方法 @Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);       Spinner spinner = (Spinner) findViewById(R.id.spinner);     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(             this, R.array.planets_array, android.R.layout.simple_spinner_item);     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);     spinner.setAdapter(adapter); }    5, 创建一个内部类:  public class MyOnItemSelectedListener implements OnItemSelectedListener {       public void onItemSelected(AdapterView<?> parent,         View view, int pos, long id) {       Toast.makeText(parent.getContext(), "The planet is " +           parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();     }       public void onNothingSelected(AdapterView parent) {       // Do nothing.     } }    6,设置监听器:     spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());  
    7, 运行结果如下:

    Android <wbr>Spinner <wbr>+ <wbr>SharedPreferences <wbr>保存上一次选择的值
    8, 如果用户选择了spinner其中的某一个item, 跳入到另外一个activity中,当从这么activity跳回来的时候,如何让spinner记得用户之前选择的那个一个item呢?这里用到了SharedPreferences:
    8.1 声明一个SharedPreferences: SharedPreferences settings;
    Editor editorsettings;
    settings = getSharedPreferences("preferences_settings",Context.MODE_PRIVATE);
    editorsettings = settings.edit(); 其中“preferences_settings”就是这个SharedPreferences的标志,我觉得就像是唯一的名字一样。
    8.2在spinner的setOnItemSelectedListener方法里保存当时用户选择的item的位置和值 spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View arg1,
                        int postion, long id) {
                        selectedName = parent.getItemAtPosition(postion).toString();

                        editorsettings.putInt("SelectedPosition", postion);
                        editorsettings.putString("SelectedName", selectedName);
                        editorsettings.commit();
    8.3 读取存在SharedPreferences里的值 SharedPreferences settings = getSharedPreferences("preferences_settings",0); //与上面的保持一致
    String name = settings.getString("SelectedName", ""); 
    int position = settings.getInt("SelectedPosition", 0 );

    spinner.setSelection(position); //设置spinner的值,让其当前选择项是与以前的一样。

  • 相关阅读:
    java的一些基本概念──JDK 、j2se 、j2sdk...
    shell函数的调用执行
    ICE第三方包简介及安装&ICE安装(linux)
    http状态码
    Grep命令学习笔记(转)
    STL map用法详解
    ubuntu下安装subversion客户端
    linux下安装Tomcat及设置JSP环境
    ICE总结
    struts开发
  • 原文地址:https://www.cnblogs.com/childhooding/p/4385780.html
Copyright © 2020-2023  润新知