предполагается, что метод onItemSelected() возвращает представление как один из его объектов, и в этом случае это textView, который был проверен путем получения описания и хэша объекта в Logcat, поэтому представление действительно является TextView. представление, возвращаемое показанным здесь методом
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
как я могу получить строку текста, которая хранится в этом представлении? например, если вы сделаете это,
view.getText();
предполагается вернуть строку, которая хранится в textView, но не работает
однако я пробовал много разных вещей, таких как приведение представления к TextView, чтобы получить сохраненную строку из представления, и ни одна из этих вещей не сработала. одна из моих неудачных попыток вот такая
((TextView) view).getText()
как я могу получить строку из представления, возвращаемого методом обратного вызова onItemSelected?
ArrayList загружается со строками и помещается в адаптер, показанный здесь,
public class SpinnerAdapter extends ArrayAdapter<String>{
ArrayList<String> objects;
Context context;
int textViewResourceId;
public SpinnerAdapter(Context context, int textViewResourceId, ArrayList<String> objects) {
super(context, textViewResourceId, objects);
this.context = context;
this.textViewResourceId = textViewResourceId;
this.objects = objects;
}
spinnerOne.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
Toast.makeText(StandardSelectionSettingsSmallTank.this, "id returned "+ Long.toString(id) , Toast.LENGTH_SHORT).show();
Toast.makeText(StandardSelectionSettingsSmallTank.this, "view returned "+ ((TextView) view).getText() , Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
РЕДАКТИРОВАТЬ: я только что попробовал следующий код, и он делает именно то, что мне нужно. он получает строку, которая хранится в текущей позиции счетчика. строка, которую я загрузил ранее с помощью ArrayList. это работает, поэтому я думаю, что буду использовать это вместо использования объекта View, который был возвращен методом onItemSelected.
Выбор строки = spinnerOne.getSelectedItem().toString();
я буду использовать это, если кто-нибудь не знает, как сделать это по-другому, используя объект представления