Я пытаюсь прочитать данные из таблицы студентов, где столбец семестра равен элементу, выбранному из счетчика. слушатель - spinner.setOnItemSelectedListener. проблема в том, что он останавливает активность, когда я выбираю элемент счетчика.
Он работает нормально, когда я удаляю WHERE CLAUSE. , но я должен использовать WHERE CLAUSE.
Пожалуйста помоги.
public ArrayList<HashMap<String, String>> GetAllStudents(){
ArrayList<HashMap<String, String>> userList = new ArrayList<>();
try{
SQLiteDatabase db = MyDB.getInstance(this).getReadableDatabase();
String query = "SELECT * FROM Students WHERE semester="+selected;
Cursor cursor = db.rawQuery(query,null);
if(cursor.moveToFirst()) {
while (cursor.moveToNext()) {
HashMap<String, String> user = new HashMap<>();
user.put("name", cursor.getString(0));
user.put("roll", cursor.getString(1));
user.put("semester", cursor.getString(2));
user.put("pass", cursor.getString(3));
userList.add(user);
}
}
}
catch (Exception e){
Toast.makeText(this, "Error "+selected, Toast.LENGTH_SHORT).show();
}
return userList;
}
EDIT
(код взят из комментариев, чтобы показать, откуда выбран исходит от)
String selected;
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
selected=parent.getItemAtPosition(position).toString();
loadStudents();
}
public void onNothingSelected(AdapterView<?> parent) {
}
});
loadStudents();