как получить строку из объекта представления, возвращаемого методом onItemSelected()

предполагается, что метод 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();

я буду использовать это, если кто-нибудь не знает, как сделать это по-другому, используя объект представления


person Kevik    schedule 24.07.2013    source источник
comment
Вы пытаетесь получить строку, выбранную из счетчика?   -  person Shobhit Puri    schedule 24.07.2013
comment
да, и .getSelectedItem() отлично работает для этой цели, я решил, что буду использовать это, это лучше, чем использование представления.   -  person Kevik    schedule 24.07.2013
comment
извините за путаницу, иногда ответ, который я ищу, не является ожидаемым. если я все еще заинтересован в выяснении того, как получить содержимое String из объекта представления, но теперь удовлетворен тем, что мне не нужно этого делать. я бы предпочел понять, как сделать это в обоих направлениях   -  person Kevik    schedule 24.07.2013
comment
Все хорошо. Сначала я запутался, поэтому удалил ответ;). Рад, что вы решили это.   -  person Shobhit Puri    schedule 24.07.2013


Ответы (2)


Проверьте этот.

parent.getItemAtPosition(position).toString() in place of  `((TextView) view).getText()`
person Abhijit Chakra    schedule 24.07.2013
comment
У Shobhit также есть отличный ответ, однако этот ответ получает строку из объекта, предоставленного методом обратного вызова onItemSelected, поэтому он ближе к исходному вопросу. оба ответа хороши, и я буду использовать эти методы в будущем. - person Kevik; 24.07.2013

Вы можете получить строку из объекта, который вы установили в адаптере, по позиции int.

this.objects.get(position).getYourString();
person Muhammad Aamir Ali    schedule 24.07.2013