res/layou/activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <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:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.lai.class5_spinnertospinner.MainActivity"> <Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2" android:entries="@array/Citys" android:id="@+id/spinner" /> <Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2" android:id="@+id/spinner2" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="New Text" android:textSize="30sp" android:layout_weight="6" android:id="@+id/textView" /> </LinearLayout>
res/values/strings.xml
<resources> <string name="app_name">Class5_SpinnerToSpinner</string> <string-array name="Citys"> <item>台北市</item> <item>台中市</item> <item>高雄市</item> </string-array> <string-array name="SubCity1"> <item>信義區</item> <item>大安區</item> <item>內湖區</item> </string-array> <string-array name="SubCity2"> <item>東區</item> <item>中區</item> <item>南屯區</item> </string-array> <string-array name="SubCity3"> <item>鳳山區</item> <item>三民區</item> <item>旗津區</item> </string-array> </resources>
java/MainActivity
package com.lai.class5_spinnertospinner; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends AppCompatActivity { Spinner sp1,sp2; TextView tvShow; String strCity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findviews(); // testSpinner(); } void findviews(){ sp1 = (Spinner)findViewById(R.id.spinner); sp1.setOnItemSelectedListener(spinnerListener); sp2 = (Spinner)findViewById(R.id.spinner2); //註冊同一個監聽器spinnerListener sp2.setOnItemSelectedListener(spinnerListener); tvShow = (TextView)findViewById(R.id.textView); } //等同於xml裡的android:entries="@array/Citys" void testSpinner(){ String[] data={"a","b","c"}; ArrayAdapter<String> adt=new ArrayAdapter<String>( this, //畫面Content android.R.layout.simple_spinner_item, //用android內建的資源檔 data); //資料 //設定下拉式樣式 adt.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // sp2.setAdapter(adt); //註冊 } AdapterView.OnItemSelectedListener spinnerListener=new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> adapterView, View view, int i, long id) { //第一種取文字方法 // String text=((TextView)view).getText().toString(); //第二種取文字方法 //String text=adapterView.getItemAtPosition(i).toString(); // Toast.makeText(MainActivity.this, // text, // Toast.LENGTH_SHORT).show(); if(adapterView.getId()==sp1.getId()){ //大城市 strCity=((TextView)view).getText().toString(); //小地方 String[] subcity=null; if(i==0){ subcity=getResources().getStringArray(R.array.SubCity1); } if(i==1){ subcity=getResources().getStringArray(R.array.SubCity2); } if(i==2){ subcity=getResources().getStringArray(R.array.SubCity3); } ArrayAdapter<String> adt=new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item,subcity); adt.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); sp2.setAdapter(adt); }else{ String strSubCity=((TextView)view).getText().toString(); //將spinner裡的內容顯示在textview裡 tvShow.setText(strCity+"-"+strSubCity); } } @Override public void onNothingSelected(AdapterView<?> parent) { } }; }
文章標籤
全站熱搜
