亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android編程下拉菜單spinner用法小結(附2則示例)

2020-04-11 11:08:45
字體:
來源:轉載
供稿:網友

本文較為詳細的總結分析了Android編程下拉菜單spinner用法。分享給大家供大家參考,具體如下:

Spinner控件也是一種列表類型的控件,它的繼承關系如下:

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.AdapterView<Textends android.widget.Adapter>
         ↳ android.widget.AbsSpinner
          ↳ android.widget.Spinner

android.widget.Spinner繼承了android.view.ViewGroup類。

在Android的UI開發中,Spinner(下拉列表)總是可以用到的,一個簡單的自定義Spinner制作我們只需要記住這重要的五步,一個Spinner就可以應用而生了。

(1)新建一個android工程,名稱為Spinner。同時建一個Activity,名稱為SpinnerActivity。

(2)修改res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  >  <TextView  android:id = "@+id/TextView_city"  android:layout_width = "wrap_content"  android:layout_height = "wrap_content"  android:text = "所在城市:"  />  <!-- 定義一個城市信息下拉菜單-->  <Spinner  android:id = "@+id/Spinner_city"  android:layout_width = "wrap_content"  android:layout_height ="wrap_content" >  </Spinner > </LinearLayout>

(3)SpinnerActivity.java 代碼

package cn.com; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class SpinnerActivity extends Activity {  /** Called when the activity is first created. */  private List<String> list = new ArrayList<String>();  private TextView myTextView;  private Spinner mySpinner;  private ArrayAdapter<String> adapter;  @Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  //第一步:添加一個下拉列表項的list,這里添加的項就是下拉列表的菜單項 list.add("北京");  list.add("上海");  list.add("深圳");  list.add("福州");  list.add("廈門");  myTextView = (TextView)findViewById(R.id.TextView_city);  mySpinner = (Spinner)findViewById(R.id.Spinner_city);  //第二步:為下拉列表定義一個適配器,這里就用到里前面定義的list。  adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list); //第三步:為適配器設置下拉列表下拉時的菜單樣式。  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  //第四步:將適配器添加到下拉列表上  mySpinner.setAdapter(adapter);  //第五步:為下拉列表設置各種事件的響應,這個事響應菜單被選中  mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){   public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {   // TODO Auto-generated method stub   /* 將所選mySpinner 的值帶入myTextView 中*/   myTextView.setText("您選擇的是:"+ adapter.getItem(arg2));   /* 將mySpinner 顯示*/   arg0.setVisibility(View.VISIBLE);   }   public void onNothingSelected(AdapterView<?> arg0) {   // TODO Auto-generated method stub   myTextView.setText("NONE");   arg0.setVisibility(View.VISIBLE);   }  });  /*下拉菜單彈出的內容選項觸屏事件處理*/  mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){   public boolean onTouch(View v, MotionEvent event) {   // TODO Auto-generated method stub   /**    *    */   return false;   }  });  /*下拉菜單彈出的內容選項焦點改變事件處理*/  mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){  public void onFocusChange(View v, boolean hasFocus) {   // TODO Auto-generated method stub  }  });  } }

運行結果如下圖所示:

補充:Spinner控件用法示例2則

用法1:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" tools:context="com.example.mars_2100_spinner.MainActivity" tools:ignore="MergeRootFrame" ><Spinner android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/SpinnerId"/></LinearLayout>
package com.example.mars_2100_spinner;import android.support.v7.app.ActionBarActivity;import android.support.v7.app.ActionBar;import android.support.v4.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.Toast;import android.os.Build;public class MainActivity extends ActionBarActivity { private static final String[] m_arr = {"第一組","第二組","第三組"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Spinner _spin = (Spinner)findViewById(R.id.SpinnerId); ArrayAdapter<String> ada = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, m_arr); ada.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); _spin.setAdapter(ada); _spin.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){  public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3){  dispToast("選擇的是"+m_arr[arg2]);  arg0.setVisibility(View.VISIBLE);  }  public void onNothingSelected(AdapterView<?> arg0){  //  } }); /*if (savedInstanceState == null) {  getSupportFragmentManager().beginTransaction().add(R.id.container, new PlaceholderFragment()).commit(); }*/ } public void dispToast(String str){ Toast.makeText(this, str, Toast.LENGTH_SHORT).show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) {  return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  View rootView = inflater.inflate(R.layout.fragment_main, container, false);  return rootView; } }}

用法2:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" tools:context="com.example.mars_2100_spinner.MainActivity" tools:ignore="MergeRootFrame" ><Spinner android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/SpinnerId2"/><TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content"/><Spinner android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/SpinnerId3"/><TextView android:id="@+id/textView2" android:layout_width="fill_parent" android:layout_height="wrap_content"/></LinearLayout>
package com.example.mars_2100_spinner;import android.support.v7.app.ActionBarActivity;import android.support.v7.app.ActionBar;import android.support.v4.app.Fragment;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;import android.os.Build;public class Main02Activity extends Activity { static final String[] CONSTELLATIONS = new String[] { "白羊座", "金牛座", "雙子座", "巨蟹座", "獅子座", "處女座", "天枰座", "天蝎座", "射手座", "魔蝎座", "水瓶座", "雙魚座" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main02); final TextView txt2 = (TextView) findViewById(R.id.textView1); Spinner s1 = (Spinner) findViewById(R.id.SpinnerId2); final 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); s1.setAdapter(adapter); s1.setPrompt("測試"); s1.setOnItemSelectedListener(new OnItemSelectedListener() {  @Override  public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {  txt2.setText(adapter.getItem(position).toString());  }  @Override  public void onNothingSelected(AdapterView<?> parent) {  txt2.setText("沒選中的");  } }); final TextView txt4 = (TextView) findViewById(R.id.textView2); Spinner s2 = (Spinner) findViewById(R.id.SpinnerId3); ArrayAdapter<CharSequence> adapterC = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, CONSTELLATIONS); adapterC.setDropDownViewResource(android.R.layout.simple_spinner_item); s2.setAdapter(adapterC); s2.setOnItemSelectedListener(new OnItemSelectedListener() {  public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {  txt4.setText(CONSTELLATIONS[position]);  }  public void onNothingSelected(AdapterView<?> parent) {  txt4.setText("沒選中的");  } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main02, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) {  return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  View rootView = inflater.inflate(R.layout.fragment_main02, container, false);  return rootView; } }}
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">Mars_2100_Spinner</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</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> <string name="title_activity_main02">Main02Activity</string></resources>

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文一区二区视频| 91精品中国老女人| 欧美成人午夜视频| 成人激情视频小说免费下载| 中文字幕日本欧美| 国产v综合ⅴ日韩v欧美大片| 一个色综合导航| 欧美在线播放视频| 欧美日韩国产页| 亚洲最新中文字幕| 亚洲第一视频网| 亚洲理论片在线观看| 欧美日韩国产第一页| 国产精品久久97| 九九精品在线视频| 日韩毛片在线看| 久久久久久久久久久国产| 精品美女国产在线| 人体精品一二三区| xxxxx成人.com| 国内精品久久久久伊人av| 欧美在线视频免费观看| 欧美大片第1页| 日本久久久久久久久久久| 久久久99久久精品女同性| 色播久久人人爽人人爽人人片视av| 日韩国产精品视频| 国产精品白丝av嫩草影院| 欧美尤物巨大精品爽| 国产精品女人网站| 亚洲免费成人av电影| 欧美激情久久久| 国产精品视频yy9099| 日韩在线免费视频| 成人免费视频网址| 国产亚洲精品久久久久久| 久久久久在线观看| 国产精品丝袜白浆摸在线| 国产成人avxxxxx在线看| 欧美www视频在线观看| 亚洲男人天天操| 国产成人精品一区二区在线| 久久亚洲国产精品成人av秋霞| 成人h视频在线观看播放| 欧美肥老妇视频| 性欧美xxxx视频在线观看| 91伊人影院在线播放| 国外成人性视频| 国产玖玖精品视频| 国内精品一区二区三区四区| 国产主播精品在线| 全色精品综合影院| 色综合视频一区中文字幕| 一本色道久久88精品综合| 久久夜色精品国产| 欧美成人一区二区三区电影| 亚洲国产成人精品女人久久久| 伊人亚洲福利一区二区三区| 国产精品免费视频xxxx| 亚洲一区亚洲二区| 久久久www成人免费精品张筱雨| 亚洲男人的天堂网站| 成人欧美一区二区三区黑人孕妇| 91精品在线一区| 欧美老肥婆性猛交视频| 91极品女神在线| 亚洲综合在线中文字幕| 久久视频在线看| 亚洲精品免费网站| 欧美性感美女h网站在线观看免费| 日本精品在线视频| 国产精品老牛影院在线观看| 国产精品久久久久久久久影视| 中文字幕日韩专区| 久久久久亚洲精品成人网小说| 亚洲精品日韩激情在线电影| 国产精品永久免费视频| 久久亚洲影音av资源网| 成人国产亚洲精品a区天堂华泰| 国产精品欧美日韩| 国产精品免费看久久久香蕉| 国产精品久久久91| 欧美日韩视频在线| 亚洲精品动漫久久久久| www.亚洲人.com| 国产91精品在线播放| 欧美性猛交xxxx乱大交蜜桃| 国产精品一区电影| 亚洲乱码一区av黑人高潮| 国产福利视频一区二区| 91在线视频精品| 中文字幕日韩av电影| 51视频国产精品一区二区| 成年无码av片在线| 少妇激情综合网| 国产精品美女午夜av| 日韩中文在线中文网在线观看| 欧美猛交ⅹxxx乱大交视频| 国产精品27p| 国产精品美女久久久久久免费| 亚洲精品国产综合久久| 欧日韩在线观看| 成人妇女淫片aaaa视频| 日韩日本欧美亚洲| 精品久久久久久久久久国产| 日韩人在线观看| 69av在线视频| 欧美精品做受xxx性少妇| 国产精品视频网站| 97精品视频在线观看| 国产精品亚洲аv天堂网| 欧美中文在线字幕| 日本韩国在线不卡| 美女久久久久久久久久久| 亚洲精品97久久| 欧美一级大片在线免费观看| 日本一本a高清免费不卡| 国产欧美久久久久久| 日韩精品高清视频| 亚洲欧美国产日韩中文字幕| 欧美老少做受xxxx高潮| 欧美一区二区三区四区在线| 亚洲人成网7777777国产| 精品久久久久久久久久| 国产精品视频久久久久| 国产精品男人的天堂| 日韩精品在线第一页| 欧美视频中文字幕在线| 亚洲黄色成人网| 一本大道久久加勒比香蕉| 在线观看欧美成人| 亚洲精品国产成人| 国产成人精品免费久久久久| 欧美午夜久久久| 中文字幕在线看视频国产欧美在线看完整| 777午夜精品福利在线观看| 国产精品久久国产精品99gif| 日韩成人在线网站| 日韩欧美亚洲范冰冰与中字| 国产情人节一区| 久久精品国产一区二区三区| 免费97视频在线精品国自产拍| 日韩免费观看av| 色婷婷久久一区二区| 国产精品精品国产| 成人免费看片视频| 伊人久久久久久久久久| 欧美电影免费观看高清完整| 国产日韩专区在线| 久久影视电视剧免费网站清宫辞电视| 国产99久久精品一区二区 夜夜躁日日躁| 精品动漫一区二区| 久久免费福利视频| 亚洲香蕉成人av网站在线观看| 538国产精品一区二区在线| 日韩国产欧美精品在线| 国产在线精品自拍| 亚洲国产精品大全| 亚洲国产福利在线| 国产亚洲精品一区二555| 国产午夜精品美女视频明星a级| 成人信息集中地欧美| 91国内精品久久| 亚洲第一视频在线观看|