0

ListView的每一项都有两个按钮。我想控制Activity控件。我应该在Activity中操作,不能直接将监听设置为按钮。

所以我设置了这个代码:

listView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View view,
int position, long id) {
// TODO Auto-generated method stub
}
});

如何知道单击了项目的哪个按钮?

4

2 回答 2

0

只需在 xml-layout 中为这些按钮设置不同的 id

@Override
public void onItemClick(AdapterView<?> arg0, View view,
int position, long id) {
    switch (view.getId) {
    case R.id.btn1: ...
    case R.id.btn2: ...
    }
}
于 2013-03-29T08:45:31.727 回答
0

你必须在适配器类中处理它。这将是最合适的方式所以制作你的自定义适配器,然后在你的 getView 方法中尝试这种方式:

    public View getView(final int position, View convertView,ViewGroup parent) 
    {
       if(convertView == null)
       {
            LayoutInflater inflater = getLayoutInflater();
            convertView  = (LinearLayout)inflater.inflate(R.layout.YOUR_LAYOUT, null);
       }

       Button Button1= (Button)  convertView.findViewById(R.id.BUTTON1_ID);
       Button Button2= (Button)  convertView.findViewById(R.id.BUTTON2_ID);

       Button1.setOnClickListener(new OnClickListener() 
       { 
           @Override
           public void onClick(View v) 
           {
               // Your code that you want to execute on this button click
           }

       });
     Button2.setOnClickListener(new OnClickListener() 
       { 
           @Override
           public void onClick(View v) 
           {
               // Your code that you want to execute on this button click
           }

   });


   return convertView ;
}
于 2013-03-29T08:45:57.497 回答