Spinner 控件的使用day4

//佈局界面用到的控件
//一個Spinner 一個Button
//一個TextViewandroid

一、在res/layout 佈局界面數組

代碼ide


<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="wrap_content"
    android:orientation="vertical"
     >佈局

    <Spinner
        android:id="@+id/sp"
        android:layout_width="match_parent"
        android:layout_height="60dp"
       
         />
    <Button
        android:id="@+id/submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="提交"
        android:textSize="50sp"
        android:onClick="ok"/>
    <TextView
        android:id="@+id/textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="40sp"
 
        />post

</LinearLayout>this

--------------------------xml

2在MainActivity 裏實現Spinner(下拉列表)功能對象

代碼ci

public class MainActivity extends Activity {
//聲明 下拉列表對象
private Spinner spinner;
private TextView text_content;
//用一個字符串數組來裝要放到下拉列表裏的內容
private String[] s = {"啊","啊啊","呵呵","哈哈"};
//聲明數組適配器 對象
//適配器用來 設置下拉列表的內容 還有下拉列表的類型
private ArrayAdapter<String> adapter;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
//new一個ArrayAdapter
//第二個參數是android定義好的Spinner類型
//第三個參數是要在下拉列表中放的內容
  adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, s);
//找到下拉列表的id
  spinner = (Spinner) this.findViewById(R.id.sp);
//設置適配器
  spinner.setAdapter(adapter);
  text_content = (TextView) this.findViewById(R.id.textview);
  
  /*spinner.setOnItemSelectedListener(new OnItemSelectedListener() {資源

   @Override
   public void onItemSelected(AdapterView<?> parent, View view,
     int position,long id) {
     /*獲取下拉列表中被選中的項的4種方法
     //方法1
    String data1 = spinner.getSelectedItem().toString();
    //方法2
    String data2 = parent.getItemAtPosition(position).toString();
    //方法3
    String data3 = parent.getSelectedItem().toString();
    //方法4
    String data4 = adapter.getItem(position);*/
    // TODO Auto-generated method stub
    String spinner_date = spinner.getSelectedItem().toString();
    text_content.setText(spinner_date);
   }

  /* @Override
   public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub
   }
  });
  
 }*/
//提交按鈕的 監聽 方法
 public void ok(View view){
//用Spinner對象調用getSelectedItem方法 來獲取 下拉列表的 內容
  String sp_date = spinner.getSelectedItem().toString();
//把選擇的下拉列表的內容 設置到 TextView裏
  text_content.setText(sp_date);
 }
}

-----------------------------------------------------------------

//有2個Spinner(下拉列表) 選中第一個Spinner裏面的數據
//第二個Spinner裏面的數據與第一個Spinner選中的數據對應
//例如:選中廣東省(第一個Spinner) 第二個Spinner裏面有廣東省
//相應的市

一、在res/layout裏 佈局界面 2個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="wrap_content"
    android:orientation="vertical"
   >

    <Spinner
        android:id="@+id/provice_spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
    <Spinner
        android:id="@+id/city_spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

--------------------------------------

二、在MainAcitvity裏面 實現功能

代碼


public class MainActivity extends Activity {

//聲明下拉列表對象
 private Spinner p_spinner;
 private Spinner c_spinner;
//用字符串數組裝 要放到下拉列表的數據
 private String[] provice = {"廣西","廣東","河北","河南"};
 private String[][] city = {{"柳州","南寧","桂林","玉林"},
   {"廣州","深圳","湛江","佛山"},{"衡水","..."},{"dd","kk"}};
//聲明數組適配器對象 
 private ArrayAdapter<String> c_adapter;
 private ArrayAdapter<String> p_adapter;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  p_spinner = (Spinner) this.findViewById(R.id.provice_spinner);
  c_spinner = (Spinner) this.findViewById(R.id.city_spinner);
  
  p_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, provice);
  p_spinner.setAdapter(p_adapter);
  //不放 資源 初始化 爲 空
  c_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
  c_spinner.setAdapter(c_adapter);
  //設置第一個Spinner的監聽
  p_spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

   @Override
   public void onItemSelected(AdapterView<?> arg0, View arg1,
     int postion, long arg3) {
    // TODO Auto-generated method stub
    //清楚 前面 的 內容
    c_adapter.clear();
//用city[position]來獲取城市
//用addAll方法來設置省的城市
    c_adapter.addAll(city[postion]);
   }

   @Override   public void onNothingSelected(AdapterView<?> arg0) {    // TODO Auto-generated method stub    }  });   }}

相關文章
相關標籤/搜索