#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();