У меня есть 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?