91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android使用Spinner實現城市級聯下拉框

發布時間:2020-09-06 15:36:48 來源:腳本之家 閱讀:145 作者:Adan0520 欄目:移動開發

最近寫一個使用Spinner實現城市級聯下拉框的Dome,現在總結一下,第一次寫博客,互相學習。

activity_main.xml里面有三個Spinner

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  xmlns:tools="http://schemas.android.com/tools" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:background="@color/white" 
  android:orientation="horizontal" 
  tools:context=".MainActivity"> 
 
  <Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" /> 
 
  <Spinner 
    android:id="@+id/spinner2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:visibility="invisible" /> 
 
  <Spinner 
    android:id="@+id/spinner3" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:visibility="invisible" /> 
 
</LinearLayout> 

Spinner的每一個item布局,里面只有一個TextView

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:background="@color/white" 
  android:gravity="center" 
  android:orientation="horizontal" 
  android:padding="5dp"> 
 
  <TextView 
    android:id="@+id/txt_name" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="名稱" 
    android:textSize="16dp" /> 
</LinearLayout> 

下面是SpinnerAdapter,一般會用到Adapter的有如下幾個控件

(1)列表視圖控件-ListView
(2)縮略圖瀏覽器控件-Gallery
(3)網格控件-GridView
(4)下拉列表控件-Spinner
(5)自動提示文本框-AutoCompleteTextView
(6)支持展開/收縮功能的列表控件-ExpandableListView
適配器的作用是用來處理數據并將數據綁定到AdapterView上,是AdapterView視圖與與數據之間的一個橋梁。

/** 
 * @author: xiaolijuan 
 * @description: Spinner適配器 
 * @projectName: SpinnerProject 
 * @date: 2015-10-18 
 * @time: 00:19 
 */ 
public class SpinnerAdapter extends BaseAdapter { 
  private Context context; 
  private String[] array; 
  private int layoutId; 
 
  /** 
   * 構造方法 
   * @param context 上下文對象 
   * @param array 數組 
   * @param layoutId 布局Id 
   */ 
  public SpinnerAdapter(Context context, String[] array, int layoutId) { 
    this.context = context; 
    this.array = array; 
    this.layoutId = layoutId; 
  } 
 
  /** 
   * 獲取Item總數 
   * @return 
   */ 
  @Override 
  public int getCount() { 
    return array.length; 
  } 
 
  /** 
   * 獲取一個Item對象 
   * @param position 
   * @return 
   */ 
  @Override 
  public Object getItem(int position) { 
    return array[position]; 
  } 
 
  /** 
   * 獲取指定item的ID 
   * @param position 
   * @return 
   */ 
  @Override 
  public long getItemId(int position) { 
    return position; 
  } 
 
  /** 
   * 繪制的內容均在此實現 
   * @param position position就是位置從0開始 
   * @param convertView convertView是Spinner中每一項要顯示的view 
   * @param parent parent就是父窗體了,也就是Spinner 
   * @return 
   */ 
  @Override 
  public View getView(int position, View convertView, ViewGroup parent) { 
    View item = convertView != null ? convertView : View.inflate(context, layoutId, null); 
    TextView txt_name = (TextView) item.findViewById(R.id.txt_name); 
    txt_name.setText(array[position]); 
    return item; 
  } 
} 

java 代碼:注釋寫的很清楚

/** 
 * 使用Spinner實現城市級聯下拉框 
 * Spinner最簡單使用方式步驟如下: 
 * 第一步:在布局文件中添加Spinner控件。 
 * 第二步:在Acitvity中通過id找到它。 
 * 第三步:給Spinner綁定一個適配器。 
 * 第四步:綁定監聽器就可以用了。 
 */ 
public class MainActivity extends Activity { 
  private Spinner spinner1, spinner2, spinner3; 
 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
 
    spinner1 = (Spinner) findViewById(R.id.spinner1); 
    spinner2 = (Spinner) findViewById(R.id.spinner2); 
    spinner3 = (Spinner) findViewById(R.id.spinner3); 
 
    //加載省份列表 
    loadProvince(); 
    //設置spinner1的監聽事件 
    spinner1.setOnItemSelectedListener(new Spinner1ClickListener()); 
    //加載城市列表 
    loadCity(); 
    //設置spinner2的監聽事件 
    spinner2.setOnItemSelectedListener(new Spinner2ClickListener()); 
    //加載區域列表 
    loadGZArea(); 
    //設置spinner3的監聽事件 
    spinner3.setOnItemSelectedListener(new Spinner3ClickListener()); 
  } 
 
  /** 
   * 加載省份列表 
   */ 
  public void loadProvince() { 
    String[] array1 = new String[]{"請選擇", "廣東省"}; 
    SpinnerAdapter adapterOne = new SpinnerAdapter(this, array1, R.layout.activity_item); 
    spinner1.setAdapter(adapterOne); 
  } 
 
  /** 
   * 加載城市列表 
   */ 
  public void loadCity() { 
    String[] array2 = new String[]{"請選擇", "廣州市", "深圳市"}; 
    SpinnerAdapter modelTwo = new SpinnerAdapter(this, array2, R.layout.activity_item); 
    spinner2.setAdapter(modelTwo); 
  } 
 
  /** 
   * 加載廣州區域列表 
   */ 
  public void loadGZArea() { 
    String[] array3 = new String[]{"請選擇", "天河區", "越秀區", "荔灣區", "海珠區", "蘿崗區", "白云區", "黃埔區", "花都區"}; 
    SpinnerAdapter modelThree = new SpinnerAdapter(this, array3, R.layout.activity_item); 
    spinner3.setAdapter(modelThree); 
  } 
 
  /** 
   * 加載深圳區域列表 
   */ 
  public void loadSZArea() { 
    String[] array3 = new String[]{"請選擇", "龍崗區", "南山區", "福田區", "羅湖區", "鹽田區", "寶安區"}; 
    SpinnerAdapter modelThree = new SpinnerAdapter(this, array3, R.layout.activity_item); 
    spinner3.setAdapter(modelThree); 
  } 
 
  /** 
   * Spinner1點擊事件 
   */ 
  public class Spinner1ClickListener implements AdapterView.OnItemSelectedListener { 
 
    @Override 
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      String str = (String) adapterView.getItemAtPosition(i); 
      //判斷是否選擇城市,如果沒有選擇那么就隱藏Spinner2,Spinner3兩個下拉框,否則顯示Spinner2下拉框,繼續隱藏Spinner3 
      if (str.equals("請選擇")) { 
        spinner2.setVisibility(View.INVISIBLE); 
        spinner3.setVisibility(View.INVISIBLE); 
      } else { 
        spinner2.setVisibility(View.VISIBLE); 
 
        //將第二個下拉框的選項重新設置為選中“請選擇”這個選項。 
        spinner2.setSelection(0); 
      } 
 
      Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show(); 
    } 
 
    @Override 
    public void onNothingSelected(AdapterView<?> adapterView) { 
 
    } 
  } 
 
  /** 
   * Spinner2點擊事件 
   */ 
  public class Spinner2ClickListener implements AdapterView.OnItemSelectedListener { 
 
    @Override 
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      String str = (String) adapterView.getItemAtPosition(i); 
      if (str.equals("請選擇")) { 
        spinner3.setVisibility(View.INVISIBLE); 
      } else { 
        //顯示第三個Spinner3 
        spinner3.setVisibility(View.VISIBLE); 
 
        if (str.equals("深圳市")) { 
          //重新加載深圳區域列表 
          loadSZArea(); 
        } else if (str.equals("廣州市")) { 
          //重新加載廣州區域列表 
          loadGZArea(); 
        } 
      } 
      Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show(); 
    } 
 
    @Override 
    public void onNothingSelected(AdapterView<?> adapterView) { 
 
    } 
  } 
 
  /** 
   * Spinner3點擊事件 
   */ 
  public class Spinner3ClickListener implements AdapterView.OnItemSelectedListener { 
 
    @Override 
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { 
      String str = (String) adapterView.getItemAtPosition(i); 
      Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show(); 
    } 
 
    @Override 
    public void onNothingSelected(AdapterView<?> adapterView) { 
 
    } 
  } 
} 

下面是布局的效果圖

Android使用Spinner實現城市級聯下拉框

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海城市| 城固县| 安新县| 普兰县| 衢州市| 德化县| 滕州市| 左贡县| 中方县| 达拉特旗| 门源| 巴林左旗| 丹棱县| 永兴县| 行唐县| 安岳县| 双城市| 岑溪市| 商南县| 忻州市| 鄂州市| 咸丰县| 安多县| 化隆| 余江县| 云浮市| 禄丰县| 马关县| 巴里| 友谊县| 汾阳市| 陈巴尔虎旗| 元氏县| 祁连县| 高州市| 鹿邑县| 容城县| 元阳县| 海城市| 盐津县| 大宁县|