2012-01-09 94 views
0

我有經由佈局充氣機創建多個按鈕(從數據庫源)的機器人ListActivity:獲取點擊按鈕的文本在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; 
     } 

我也有一個方法,用於「點擊」,在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」等)。我想即時通訊尋找像this.getText()。toString? 。

回答

0

代替在SelectQuest使用findviewbyid使用v的傳遞給函數

字符串buttonText = v.getText()的toString();

+0

getText()不允許用於此 – re1man 2012-01-09 07:24:05

+0

轉換爲Button v工作:) – re1man 2012-01-09 07:25:37