Android 在同一布局中使用多个微调器

Android 在同一布局中使用多个微调器,android,spinner,Android,Spinner,在我的android应用程序中,我在布局中有4个微调器。我使用侦听器为微调器设置了值。 下面的代码片段显示了我是如何尝试这样做的。 但它似乎没有监听用户选择的值。相反,它会获取微调器中设置的第一个值。我对onItemSelected()方法中定义的参数不是很清楚。 我犯了什么错误 我已经编辑了我的问题。请考虑下面的代码。它使用相同的过程来设置微调器的值,使用不同的查询 @Override public void onCreate(Bundle savedInstanceState) {

在我的android应用程序中,我在布局中有4个微调器。我使用侦听器为微调器设置了值。 下面的代码片段显示了我是如何尝试这样做的。 但它似乎没有监听用户选择的值。相反,它会获取微调器中设置的第一个值。我对onItemSelected()方法中定义的参数不是很清楚。 我犯了什么错误

我已经编辑了我的问题。请考虑下面的代码。它使用相同的过程来设置微调器的值,使用不同的查询

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_grama_niladhari);

    final ArrayList<String> provinceList = new ArrayList<String>();
    final ArrayList<String> disList      = new ArrayList<String>();
    final ArrayList<String> divList      = new ArrayList<String>();
    final ArrayList<String> gramaList    = new ArrayList<String>();

    final Spinner disSpinner = (Spinner) findViewById(R.id.spinner2);
    final Spinner divSpinner = (Spinner) findViewById(R.id.spinner3);
    final Spinner gramaSpinner = (Spinner) findViewById(R.id.spinner4);


    ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, provinceList);
    final ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, disList);
    final ArrayAdapter<String> adapter3 = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, divList);
    final ArrayAdapter<String> adapter4 = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, gramaList);


    Button b = (Button) findViewById(R.id.button1);

    DBHelper dbhlper = new DBHelper(getApplicationContext());
    try {

        dbhlper.createDataBase();
        mydb = dbhlper.openDataBase();

    } catch (IOException e) {
        e.printStackTrace();
    }

    final String selected_item;
    String province_query = "SELECT pro_code,name FROM jos_province";

    Cursor c = mydb.rawQuery(province_query, null);
    provinceList.clear();

    final HashMap<String, Integer> hm = new HashMap<String, Integer>();
    if (c != null) {

        int i = 1;
        int noCols = c.getCount();
        if (c.moveToFirst()) {
            do {

                Log.d("Data" + i, c.getString(1));
                provinceList.add(c.getString(1));

                hm.put(c.getString(1), c.getInt(0));

            } while (c.moveToNext());

        }   

    }

    final Spinner provSpinner = (Spinner) findViewById(R.id.spinner1);
    // ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,
    // provinceList);
    adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    provSpinner.setAdapter(adapter1);

    // //////////////////////////////// Handling spinner1 ///////////////////////////////////

    final String sel_district_id = null;

    provSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        @TargetApi(11)
        @Override
        public void onItemSelected(AdapterView<?> parent, View arg1,
                int arg2, long arg3) {
            String province = provSpinner.getSelectedItem().toString();
            int sel_province_id = hm.get(province);



            String district = "SELECT id,name_english from jos_district `enter code here`where province_id= "+ sel_province_id;

            // ArrayList<String> disList=new ArrayList<String>();
            Cursor c = mydb.rawQuery(district, null);
            hm.clear();
            disList.clear();
            if (c != null) {

                int i = 1;
                int noCols = c.getCount();
                if (c.moveToFirst()) {
                    do {

                        Log.d("Data" + i, c.getString(1));

                        disList.add(c.getString(1));


                    disList.toString());
                        i++;
                        hm.put(c.getString(1),c.getInt(0));


                    } while (c.moveToNext());

                }

            }
            //String sel_district_id ="66";

            adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            String listCount=Integer.toString(adapter2.getCount());
            disSpinner.setAdapter(adapter2);

                }

        @Override
        public void onNothingSelected(AdapterView<?> adapter1) {
            // TODO Auto-generated method stub

        }

    });

    disSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

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

            String selected_dis = `enter code here`disSpinner.getSelectedItem().toString();
            String sel_district_id = hm.get(selected_dis).toString();


            String division = "SELECT id,name_english FROM jos_division `enter code here`WHERE district_id= "
                    + sel_district_id;
            Cursor c = mydb.rawQuery(division, null);
            hm.clear();
            if (c != null) {

                int i = 1;
                int noCols = c.getCount();
                if (c.moveToFirst()) {
                    do {

                        Log.d("Data " + i, c.getString(1));
                        divList.add(c.getString(1));

                        hm.put(c.getString(1), `enter code here`c.getInt(0));
                        // `enter code here`provinceList.add(c.getString(1));

                    } while (c.moveToNext());

                }
            }
            // set the view for the Drop down list
            `enter code here`adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            // set the ArrayAdapter to the spinner
            divSpinner.setAdapter(adapter3);

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {

        }
    });

    divSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

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

            String `enter code here`selected_division=divSpinner.getSelectedItem().toString();

            sel_division_id = hm.get(selected_division).toString();

            String gramaniladhari = "SELECT lifecode,name_english FROM  jos_gramaniladhari WHERE divisional_secretariat_id= " + sel_division_id;


            hm.clear();
            Cursor c=mydb.rawQuery(gramaniladhari, null);
            if (c != null) {

                int i = 1;
                int noCols = c.getCount();
                if (c.moveToFirst()) {
                    do {

                        Log.d("Data " + i, c.getString(1));
                        divList.add(c.getString(1));

                        hm.put(c.getString(1),c.getInt(0));

                    } while (c.moveToNext());

                }

            }

        // set the view for the Drop down list
                         `enter code here`adapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            // set the ArrayAdapter to the spinner
            gramaSpinner.setAdapter(adapter4);


            String `enter code here`selected_grama=gramaSpinner.getSelectedItem().toString();
            String lifeCode = hm.get(selected_grama).toString();
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {

        }
    }); 
@覆盖
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grama_niladhari);
最终ArrayList provinceList=新ArrayList();
final ArrayList disList=new ArrayList();
最终ArrayList divList=新ArrayList();
最终ArrayList gramaList=新ArrayList();
最终纺纱机分离纺纱机=(纺纱机)findViewById(R.id.spinner2);
最终微调器divSpinner=(微调器)findViewById(R.id.spinner3);
最终纺纱机gramaSpinner=(纺纱机)findViewById(R.id.spinner4);
ArrayAdapter适配器1=新的ArrayAdapter(此,
android.R.layout.simple\u微调器\u项目,provinceList);
最终阵列适配器2=新阵列适配器(此,
android.R.layout.simple\u微调器\u项,disList);
最终阵列适配器3=新阵列适配器(此,
android.R.layout.simple_微调器_项,divList);
最终阵列适配器4=新阵列适配器(此,
android.R.layout.simple_微调器_项目,gramaList);
按钮b=(按钮)findViewById(R.id.button1);
DBHelper dbhlper=新的DBHelper(getApplicationContext());
试一试{
dbhlper.createDataBase();
mydb=dbhlper.openDataBase();
}捕获(IOE异常){
e、 printStackTrace();
}
最终选定的字符串\u项;
String province\u query=“从jos\u province中选择专业代码、名称”;
游标c=mydb.rawQuery(省\查询,空);
provinceList.clear();
final HashMap hm=新HashMap();
如果(c!=null){
int i=1;
int noCols=c.getCount();
if(c.moveToFirst()){
做{
Log.d(“数据”+i,c.getString(1));
provinceList.add(c.getString(1));
hm.put(c.getString(1),c.getInt(0));
}而(c.moveToNext());
}   
}
最终微调器校准微调器=(微调器)findViewById(R.id.spinner1);
//ArrayAdapter(这是android.R.layout.simple\u微调器项目,
//省长名单);
adapter1.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
provSpinner.setAdapter(适配器1);
////处理喷丝头1///////////////////////////////////
最终字符串sel_district_id=null;
provSpinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@塔吉塔皮(11)
@凌驾
已选择公共视图(AdapterView父视图,视图arg1,
整数arg2,长arg3){
字符串省=provSpinner.getSelectedItem().toString();
int sel_PROVICE_id=hm.get(省);
String district=“选择id,name\u english from jos\u district`在此处输入代码`where province\u id=“+sel\u province\u id;
//ArrayList disList=新的ArrayList();
游标c=mydb.rawQuery(地区,空);
hm.clear();
disList.clear();
如果(c!=null){
int i=1;
int noCols=c.getCount();
if(c.moveToFirst()){
做{
Log.d(“数据”+i,c.getString(1));
添加(c.getString(1));
disList.toString());
i++;
hm.put(c.getString(1),c.getInt(0));
}而(c.moveToNext());
}
}
//字符串sel_district_id=“66”;
adapter2.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
String listCount=Integer.toString(adapter2.getCount());
disSpinner.setAdapter(适配器2);
}
@凌驾
未选择公共无效(适配器视图适配器1){
//TODO自动生成的方法存根
}
});
disSpinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图,视图arg1,
整数arg2,长arg3){
字符串selected_dis=`在此处输入代码`disSpinner.getSelectedItem().toString();
字符串sel_district_id=hm.get(selected_dis).toString();
String division=“从jos\u division中选择id、名称\u english`在此处输入代码`WHERE district\u id=”
+选区id;
游标c=mydb.rawQuery(除法,null);
hm.clear();
如果(c!=null){
int i=1;
int noCols=c.getCount();
if(c.moveToFirst()){
做{
Log.d(“数据”+i,c.getString(1));
添加(c.getString(1));
hm.put(c.getString(1),`enter code here`c.getInt(0));
//`enter code here`provinceList.add(c.getString(1));
}而(c.moveToNext());
}
}
//设置下拉列表的视图
`在这里输入代码`adapter3.setDropDownViewResource(android.R.layout.simple\u spinner\u dropdown\u项目);
//将阵列适配器设置为微调器
divSpinner.setAdapter(适配器3);
}
@凌驾
未选择公共无效(AdapterView arg0){
}
});
setOnItemSelectedListener(新的OnItemSelectedListener()){
@凌驾
已选择公共视图(AdapterView父视图,视图arg1,
<RelativeLayout 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" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="22dp"
    android:text="@string/enter_your_provincial_details"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="16dp"
    android:text="@string/button" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="40dp"
    android:text="@string/province"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignRight="@+id/textView4"
    android:layout_below="@+id/textView2"
    android:layout_marginTop="35dp"
    android:text="@string/district"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView3"
    android:layout_marginTop="44dp"
    android:text="@string/division"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
    android:id="@+id/textView5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView4"
    android:layout_marginTop="46dp"
    android:text="@string/grama_niladhari"
    android:textAppearance="?android:attr/textAppearanceMedium" />

<Spinner
    android:id="@+id/spinner1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/textView3"
    android:layout_alignParentRight="true"
    android:layout_toRightOf="@+id/button1" />

<Spinner
    android:id="@+id/spinner2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/textView4"
    android:layout_alignLeft="@+id/spinner1"
    android:layout_alignParentRight="true" />

<Spinner
    android:id="@+id/spinner3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/spinner2"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/textView4" />

<Spinner
    android:id="@+id/spinner4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/textView5"
    android:layout_alignLeft="@+id/spinner3"
    android:layout_alignParentRight="true" />

   </RelativeLayout>