Как установить значение по умолчанию в spinner в первой позиции?

#android #sqlite #spinner

#Android #sqlite #spinner

Вопрос:

Ниже приведен мой код, из которого я заполняю состояние в spinner из 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();

        }
  

Ответ №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());
            }
  

Комментарии:

1. Привет, Брами. Спасибо за ваш ответ. Я заполняю несколько spinner так же, как указано выше. когда я выбираю состояние из приведенного выше кода, я хочу заполнить city в другом spinner из sqlite из той же таблицы. Я делаю то же самое, что и выше, но он не заполняет город в другом спиннере. когда я даю жестко закодированный идентификатор любого штата, он выдает мне список городов в spinner. Это означает, что мой городской счетчик не обновляется, когда я выбираю состояние. Как я могу этого добиться?

2. братан, используй следующее условие в ссылке pastebin.com/gGsp2JDB

Ответ №2:

state_array.add(0, «Выбрать состояние»); ArrayAdapter my_Adapter = новый ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, state_array); spnState.setAdapter(my_Adapter); cursor.close();