Android練習——Spinner二級連動_都市の選択

21651 ワード

スタイル部分xml
 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

 2     xmlns:tools="http://schemas.android.com/tools"

 3     android:layout_width="match_parent"

 4     android:layout_height="match_parent"

 5     android:paddingBottom="@dimen/activity_vertical_margin"

 6     android:paddingLeft="@dimen/activity_horizontal_margin"

 7     android:paddingRight="@dimen/activity_horizontal_margin"

 8     android:paddingTop="@dimen/activity_vertical_margin"

 9     tools:context=".MainActivity" >

10 

11     <TextView

12         android:id="@+id/textView1"

13         android:layout_width="wrap_content"

14         android:layout_height="wrap_content"

15         android:text="     " />

16 

17     <Spinner

18         android:id="@+id/spinner1"

19         android:layout_width="wrap_content"

20         android:layout_height="wrap_content"

21         android:layout_alignLeft="@+id/textView1"

22         android:layout_below="@+id/textView1" />

23 

24     <Spinner

25         android:id="@+id/spinner2"

26         android:layout_width="wrap_content"

27         android:layout_height="wrap_content"

28         android:layout_alignLeft="@+id/spinner1"

29         android:layout_below="@+id/spinner1" />

30 

31 </RelativeLayout>
arrays部分xml
 1 <?xml version="1.0" encoding="utf-8"?>

 2 <resources>

 3    <string-array name="province">

 4         <item>-  -</item>

 5         <item>   </item>

 6         <item>   </item>

 7     </string-array>

 8     <string-array name="hb">

 9         <item>-  -</item>

10         <item>   </item>

11         <item>   </item>

12         <item>   </item>

13         <item>   </item>

14         <item>   </item>

15     </string-array>

16     <string-array name="bj">

17         <item>-  -</item>

18         <item>   </item>

19         <item>   </item>

20         <item>   </item>

21         <item>   </item>

22     </string-array>

23 </resources>            
Activity部分
 1 package com.example.android_spinner;

 2 

 3 import android.os.Bundle;

 4 import android.app.Activity;

 5 import android.view.Menu;

 6 import android.view.View;

 7 import android.widget.AdapterView;

 8 import android.widget.ArrayAdapter;

 9 import android.widget.Spinner;

10 

11 public class MainActivity extends Activity {

12     //     

13     private Spinner sr1;

14     private Spinner sr2;

15 

16     @Override

17     protected void onCreate(Bundle savedInstanceState) {

18         super.onCreate(savedInstanceState);

19         setContentView(R.layout.activity_main);

20         //     

21         sr1 = (Spinner) this.findViewById(R.id.spinner1);

22         sr2 = (Spinner) this.findViewById(R.id.spinner2);

23         //   String  

24         String[] province = getResources().getStringArray(R.array.province);

25         ;

26         //               

27         // ArrayAdapter<CharSequence> aa = new ArrayAdapter<CharSequence>(this,

28         // android.R.layout.simple_spinner_item,province);

29 

30         //          xml     

31         ArrayAdapter<CharSequence> aa = ArrayAdapter.createFromResource(this,

32                 R.array.province, android.R.layout.simple_spinner_item);

33 

34         //          

35         aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

36         //       spinner 

37         sr1.setAdapter(aa);

38 

39         //       

40 

41         sr1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

42 

43             @Override

44             public void onItemSelected(AdapterView<?> arg0, View arg1,

45                     int arg2, long arg3) {

46                 //          

47                 Spinner s = (Spinner) arg0;

48                 String pro = (String) s.getItemAtPosition(arg2);

49                 ArrayAdapter<CharSequence> cityAdapter = null;

50                 //           (            )

51                 if (pro.equals("   ")) {

52 

53                     cityAdapter = ArrayAdapter.createFromResource(

54                             MainActivity.this, R.array.hb,

55                             android.R.layout.simple_spinner_item);

56                 } else if (pro.equals("   ")) {

57 

58                     cityAdapter = ArrayAdapter.createFromResource(

59                             MainActivity.this, R.array.bj,

60                             android.R.layout.simple_spinner_item);

61                 } 

62                 sr2.setAdapter(cityAdapter);

63             }

64 

65             @Override

66             public void onNothingSelected(AdapterView<?> arg0) {

67                 // TODO Auto-generated method stub

68 

69             }

70 

71         });

72 

73     }

74 

75     @Override

76     public boolean onCreateOptionsMenu(Menu menu) {

77         // Inflate the menu; this adds items to the action bar if it is present.

78         getMenuInflater().inflate(R.menu.main, menu);

79         return true;

80     }

81 

82 }
実現効果:
Android练习——Spinner二级联动_城市选择