У меня есть массив Spinners, hours []. Я настраиваю его в цикле. Когда элемент выбран, мне нужно его взять и вставить в таблицу базы данных, поэтому мне нужно значение счетчика циклов в функции onItemSelected(). Как мне это сделать? Вот код:Использование значений извне onItemSelected
for(int i=0; i<36; i++)
{
hours[i].setAdapter(adapter);
hours[i].setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> adapterView, View view, int x, long l)
{
String in=String.valueOf(adapterView.getSelectedItem());
DBHelper db=new DBHelper(AcceptTimetable.this, null, null, 1);
db.changeHour((int)Math.ceil(i/6), (i+1)%6, new Subject(in));
//need to use i here, but it's giving an error
db.close();
}
public void onNothingSelected(AdapterView<?> arg)
{
//do nothing
}
});
}
Кроме того, я не уверен, что строка в = String.valueOf (adapterView.getSelectedItem()); верно. Может ли кто-нибудь сказать мне, как получить выбранное значение от Spinner? Большое спасибо.
Спасибо большое! Но теперь я обновил свой код, а часы - это 2D-массив. Поэтому мне нужно передать два значения: i и j. Могу ли я как-то это сделать с помощью setPrompt()? Или есть другой способ сделать это? Я не понял, как это сделать, расширив Spinner –
Я создал класс Spin, расширяя Spinner, и добавил две переменные i и j. Я изменил свой код соответственно, но теперь он дает мне ошибку на часов [0] [0] = (Spin) findViewById (R.id.ttmon1); «Ошибка раздувания класса Spin» Как это исправить? –
Жаль, что я не вошел в систему два дня. Внутри класса Spin вам нужно явно написать конструктор преобразования, который преобразует объект 'View' в объект' Spin' – NitroNbg