0

我如何填充这个,我的应用程序中有 2 个微调器,一个用于省,另一个用于城市,当我在省微调器中选择豪登省时,我希望我的第二个微调器显示约翰内斯堡、比勒陀利亚、百夫长,如果我在省中选择 KZN我想让我的第二个微调器展示马里茨堡和德班。

我使用 mySql 数据库,我有省表和市表。这是我的省表(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

1

您应该按照一些教程来看看加载您的微调器,例如这个http://www.dcpagesapps.com/developer-resources/android/21-android-tutorial-spinners?start=2

于 2012-06-22T09:17:49.387 回答
0

好的,那么你应该看看一些教程,在这样做之后获得微调器的基础知识

第一步:从数据库中获取数据并使用适配器将其设置为第一个微调器

第 2 步:在第一个微调器的 OnItemSelected 事件中,您还必须设置第二个适配器(根据所选项目从 db 获取数据并使用适配器将其设置为第二个微调器)

于 2012-06-22T09:34:06.480 回答
0

这是一个例子。在这里,我使用 SAX 解析从服务器获取详细信息。这里 District_districtname 和 District_districtid 是数组列表,我在其中存储来自服务器的详细信息

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 回答