0

これを設定するにはどうすればよいですか?アプリに2つのスピナーがあり、1つは州用、もう1つは都市用です。州のスピナーでハウテンを選択すると、2番目のスピナーにヨハネスブルグ、プレトリア、センチュリオンを表示したいのですが、州でKZNを選択した場合2番目のスピナーにマリッツバーグとダーバンを表示させたい。

mySqlデータベースを使用していて、ProvinceテーブルとCityテーブルがあります。これが私の州の表です(idprovince、provincename)

1   Gauteng 
2   Free-State 
3   Limpopo 
4   Northen-Cape 
5   North-West 
6   Western-Cape 
7   Eastern-Cape 
8   Kwa-Zulu-Natal 
9   Mpumalanga 

これが私の都市テーブルです(idcity、cityname、province_idprovince)

1  Johannesburg    1 
2   pretoria    1 
3   Centurion   1 
4   Bloemfontein    2 
5   Welkom  2 
6   Polokwane   3 
7   Phalaborwa  3 
8   Potgiersrus 3 
9   Tzaneen 3 
10  Kimberley   4 
11  Upington    4 
12  Mafikeng    5 
13  Klerksdorp  5 
14  Mmabatho    5 
15  Potchefstroom   5 
16  Brits   5 
17  Cape-Town   6 
18  Stellenbosch    6 
19  George  6 
20  Saldhana-Bay    6 
21  Bisho   7 
22  Port-Elizabeth  7 
23  East-London 7 
24  Pietermaritzburg    8 
25  Durban  8 
26  Ulundi  8 
27  Richards-Bay    8 
28  Newcastle   8 
29  Nelspruit   9 
30  Witbank 9 
31  Middleburg  9 
32  Ermelo  9

私はあなたの助けを感謝します。

4

3 に答える 3

0

わかりました。その後、いくつかのチュートリアルを見て、スピナーの基本を理解してください。

1ステップ:dbからデータを取得し、アダプターを使用して最初のスピナーに設定します

2ステップ:最初のスピナーのOnItemSelectedイベントで、2番目のアダプターも設定する必要があります(選択したアイテムに従ってdbからデータを取得し、アダプターを使用して2番目のスピナーに設定します)

于 2012-06-22T09:34:06.480 に答える
0

ここに例があります。ここでは、SAX 解析を使用してサーバーから詳細を取得しました。

Spinner sp1, sp2;
ArrayList<String> loc = new ArrayList<String>();
static ArrayList<String> mov = new ArrayList<String>();

ArrayAdapter<String> ad = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, district_districtname);
    // apply the Adapter:
    sp1.setAdapter(ad);
    sp1.clearFocus();

    sp1.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {

            int pos = sp1.getSelectedItemPosition();
            selecteddistrict = district_districtname.get(pos);

            loc.clear();
            for (int i = 0; i < district_districtname.size(); i++) {

                if (district_districtname.get(i).equals(selecteddistrict)) {

                    districtid = district_districtid.get(i);
                    for (int j = 0; j < locality_localityname.size(); j++) {

                        if (locality_districtid.get(j).equals(districtid)) {

                            loc.add(locality_localityname.get(j));

                        }
                    }
                }
            }


            sp2 = (Spinner) findViewById(R.id.Spinner01);

    ArrayAdapter<String> ad2 = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, loc);
    // apply the Adapter:
    sp2.setAdapter(ad2);

    sp2.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {

}

于 2012-06-22T09:39:14.183 に答える