【问题标题】:How to Set Default value in spinner at first position?如何在第一个位置设置微调器的默认值?
【发布时间】:2016-10-04 18:43:11
【问题描述】:

下面是我的代码,我从中从 sqlite 的微调器中填充状态,它运行良好。现在我想要在第一个位置添加硬编码的“选择状态”。我怎样才能做到这一点?

 try {
            ArrayList<String> state_array = new ArrayList<String>();

            Cursor cursor = db.rawQuery("SELECT nSerialNo as _id,cCodeName FROM CodeMaster where nCtgId = 6", null);


            if (cursor.moveToFirst()) {
                do {
                    //assing values
                    String stateID = cursor.getString(0);
                    String stateName = cursor.getString(1);
                    stateData = stateName;
                    state_array.add(stateData);


                } while (cursor.moveToNext());
            }

            ArrayAdapter my_Adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, state_array);
            spnState.setAdapter(my_Adapter);
            cursor.close();
            spnState.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                    state = spnState.getSelectedItem().toString();

                    Cursor cursor = db.rawQuery("SELECT nSerialNo FROM CodeMaster where cCodeName = '" + state + "'", null);

                    if (cursor.moveToFirst()) {
                        do {
                            //assing values
                            stateCodeId = cursor.getString(0);

                        } while (cursor.moveToNext());
                    }
                    cursor.close();

                }

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

                }


            });
        } catch (Exception e) {

            e.printStackTrace();

        }

【问题讨论】:

    标签: android sqlite spinner


    【解决方案1】:

    试试这个代码。

    try {
                ArrayList<String> state_array = new ArrayList<String>();
               state_array.add("Select State");
    
                Cursor cursor = db.rawQuery("SELECT nSerialNo as _id,cCodeName FROM CodeMaster where nCtgId = 6", null);
    
    
                if (cursor.moveToFirst()) {
                    do {
                        //assing values
                        String stateID = cursor.getString(0);
                        String stateName = cursor.getString(1);
                        stateData = stateName;
                        state_array.add(stateData);
    
    
                    } while (cursor.moveToNext());
                }
    

    【讨论】:

    • 嗨,布拉米。感谢您的回答。我正在填充与上面相同的多个微调器。当我从上面的代码中选择状态时,我想从同一个表中的 sqlite 填充另一个微调器中的城市。我做与上面相同的事情,但它并没有在另一个微调器中填充城市。当我给出任何州的硬编码 ID 时,它会给出微调器中的城市列表。这意味着当我选择州时,我的城市微调器不刷新。我怎样才能做到这一点?
    • 兄弟在链接pastebin.com/gGsp2JDB中使用以下条件@
    • K 谢谢布拉米
    【解决方案2】:

    state_array.add(0, "选择状态"); ArrayAdapter my_Adapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, state_array); spnState.setAdapter(my_Adapter); cursor.close();

    【讨论】:

      猜你喜欢
      • 2015-12-11
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 2019-05-14
      • 2015-08-18
      • 1970-01-01
      • 2023-03-21
      • 2014-01-22
      相关资源
      最近更新 更多