Получение текста нажатой кнопки в списке действий - PullRequest
0 голосов
/ 09 января 2012

У меня есть Android ListActivity, которая создает несколько кнопок (из источника базы данных) с помощью инфлятора макета:

private class QuestAdaptor extends ArrayAdapter<Quests> {
        private ArrayList<Quests> quests;
        public QuestAdaptor(Context context,
                                                                   int textViewResourceId,
                                                                   ArrayList<Quests> items) {
                  super(context, textViewResourceId, items);
                  this.quests = items;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
                View v = convertView;
                if (v == null) {
                        LayoutInflater vi = (LayoutInflater)
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                        v = vi.inflate(R.layout.quests, null);
                }
                Quests o = quests.get(position);
                TextView qt = (TextView) v.findViewById(R.id.quest_title);
                TextView qpr = (TextView) v.findViewById(R.id.quest_price);
                TextView qp = (TextView) v.findViewById(R.id.quest_points);
                TextView btn = (TextView) v.findViewById(R.id.btn_select_quest);
                qt.setText(o.title);
                qpr.setText(o.dollar_price);
                qp.setText(o.pts);
                btn.setText(o.quest_id);
                return v;
        }

У меня также есть метод для "onclick", определенный в макете xml:

<Button
        android:id="@+id/btn_select_quest"
        android:layout_width="100dip"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@id/quest_points"
        android:onClick="selectQuest"
        android:text="" />


public void selectQuest (View v){
        Button btn_select_quest = (Button)findViewById(R.id.btn_select_quest);
        String buttonText = btn_select_quest.getText().toString();
        showToastMessage(buttonText);

      }

Моя проблема в том, что приведенный выше код всегда возвращает «1» при нажатии любой кнопки (кнопки называются «1», «2», «3» и т. Д.).Я думаю, что я ищу что-то вроде этого. GetText (). ToString?

1 Ответ

0 голосов
/ 09 января 2012

Вместо использования findviewbyid в SelectQuest используйте v, переданный в функцию

String buttonText = v.getText (). ToString ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...