Android之Spinner用法
16lz
2022-01-26
一. 简单认识
Activity
package cn.lyj.android;import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;import android.widget.Toast;public class AndroidUIActivity extends Activity {protected int mPos;protected String mSelection;protected ArrayAdapter<CharSequence> mAdapter;public static final int DEFAULT_POSITION = 2;public static final String PREFERENCES_FILE = "SpinnerPrefs";public static final String PROPERTY_DELIMITER = "=";public static final String POSITION_KEY = "Position";public static final String SELECTION_KEY = "Selection";public static final String POSITION_MARKER = POSITION_KEY+ PROPERTY_DELIMITER;public static final String SELECTION_MARKER = SELECTION_KEY+ PROPERTY_DELIMITER;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Spinner spinner = (Spinner) findViewById(R.id.Spinner01);// 设置ArrayAdapterthis.mAdapter = ArrayAdapter.createFromResource(this, R.array.Planets,android.R.layout.simple_spinner_dropdown_item);spinner.setAdapter(this.mAdapter);// 选中触发事件,在窗口中央显示项目OnItemSelectedListener spinnerListener = new myOnItemSelectedListener(this, this.mAdapter);spinner.setOnItemSelectedListener(spinnerListener);}/** * 用户选中下拉列表中得一项 */public class myOnItemSelectedListener implements OnItemSelectedListener {ArrayAdapter<CharSequence> mLocalAdapter;Activity mLocalContext;// 构造方法public myOnItemSelectedListener(Activity c,ArrayAdapter<CharSequence> ad) {this.mLocalContext = c;this.mLocalAdapter = ad;}//When the user selects an item in the spinner, this method is invoked by the callback chainpublic void onItemSelected(AdapterView<?> parent, View v, int pos,long row) {//暂时没发现有什么用//AndroidUIActivity.this.mPos = pos;AndroidUIActivity.this.mSelection = parent.getItemAtPosition(pos).toString();TextView resultText = (TextView) findViewById(R.id.SpinnerResult);resultText.setText(AndroidUIActivity.this.mSelection);}//无用public void onNothingSelected(AdapterView<?> parent) {}}/* * Restores the current state of the spinner (which item is selected, and the value * of that item). */@Overridepublic void onResume() {super.onResume();if (!readInstanceState(this))setInitialState();Spinner restoreSpinner = (Spinner) findViewById(R.id.Spinner01);restoreSpinner.setSelection(getSpinnerPosition());}/** * Read the previous state of the spinner from the preferences file */public boolean readInstanceState(Context c) {SharedPreferences p = c.getSharedPreferences(PREFERENCES_FILE,MODE_WORLD_READABLE);this.mPos = p.getInt(POSITION_KEY, AndroidUIActivity.DEFAULT_POSITION);this.mSelection = p.getString(SELECTION_KEY, "");return (p.contains(POSITION_KEY));}/* *Store the current state of the spinner (which item is selected, and the value of that item). */@Overridepublic void onPause() {super.onPause();if (!writeInstanceState(this)) {Toast.makeText(this, "Failed to write state!", Toast.LENGTH_LONG).show();}}/** * Write the application's current state to a properties repository. */public boolean writeInstanceState(Context c) {SharedPreferences p = c.getSharedPreferences(AndroidUIActivity.PREFERENCES_FILE, MODE_WORLD_READABLE);SharedPreferences.Editor e = p.edit();e.putInt(POSITION_KEY, this.mPos);e.putString(SELECTION_KEY, this.mSelection);return (e.commit());}/** * Sets the initial state of the spinner when the application is first run. */public void setInitialState() {this.mPos = DEFAULT_POSITION;}public int getSpinnerPosition() {return this.mPos;}public void setSpinnerPosition(int pos) {this.mPos = pos;}public String getSpinnerSelection() {return this.mSelection;}public void setSpinnerSelection(String selection) {this.mSelection = selection;}}
main.xml
<?xml version="1.0" encoding="utf-8"?><!-- Creates a Linear Layout View to contain the spinner --><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <!-- Creates a spinner widget called Spinner01, within the Linear Layout The prompt text comes from the string "planet_prompt" in strings.xmlSpinner不支持android:drawSelectorOnTop此属性 --> <Spinner android:id="@+id/Spinner01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="true" android:prompt="@string/planet_prompt" > </Spinner><!-- Creates a TextView called SpinnerResult, below the spinner. --> <TextView android:id="@+id/SpinnerResult" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:text="Result" android:textSize="10pt" android:textStyle="bold" > </TextView></LinearLayout>
strings.xml
<?xml version="1.0" encoding="utf-8"?><!-- The string named "app_name" defines the application's visible name. The string array "Planets" defines an array of 9 strings. The application loads this array into the spinner's array adapter. The string "planet_prompt" defines the prompt for the result text box. --><resources> <string name="app_name">Spinner</string> <string-array name="Planets"> <item>Mercury</item> <item>Venus</item> <item>Earth</item> <item>Mars</item> <item>Jupiter</item> <item>Saturn</item> <item>Uranus</item> <item>Neptune</item> <item>Pluto</item> </string-array> <string name="planet_prompt">Select a planet</string></resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.lyj.android" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".AndroidUIActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
二. 运行结果
启动
点击菜单
选择Pluto
更多相关文章
- Android使用控件Spinner实现下拉菜单列表
- android GPS定位和卫星个数(源码)
- android TV盒子开发遥控器按键的监听
- Android简单的计算控件使用
- android通知栏Notification用法
- android:省市二级联动下拉框
- android ontouch onclick 触发顺序
- Android(安卓)的常用控件(下拉,日期,时间,单项,多项)
- android的ontouch事件