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) {

        }
    };
}

 

文章標籤
全站熱搜
創作者介紹
創作者 mingyilai 的頭像
mingyilai

mingyilai的部落格

mingyilai 發表在 痞客邦 留言(0) 人氣(31)