2012-01-09 23 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