获取ListView中按钮的数量/位置

时间:2013-08-31 15:05:01

标签: android eclipse listview button toast

我在ListView的每一行上放了一个按钮,现在我想得到该按钮的位置(行的编号),当有人按下那个按钮而不是行时,使用TOAST显示它。

我不知道该怎么做,我甚至无法展示Toast,这是我的代码:

        ListView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> list, View view, int position, long id) {
            Log.i(TAG, "onListItemClick: " + position);

            Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show();            

            }
    });

我正在学习如何为Android开发,我不是英语母语人士,谢谢你的帮助!

4 个答案:

答案 0 :(得分:1)

最短路[{1}}

答案 1 :(得分:0)

在您的Adaper中为特定按钮编写setOnclickListner。在这里,您可以获得位置。

public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    // TODO Auto-generated method stub
    final InviteOddViewHolder holderodd;

    int odd_bg = R.drawable.listing_odd;
    int even_bg = R.drawable.listing_even;

    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.bookmark_list_item, null);
        holderodd = new InviteOddViewHolder();
        holderodd.button = (Button) convertView
                .findViewById(R.id.button);

        holderodd.button.setOnClickListener(new OnClickListener() {           

        @Override
       public void onClick(View v) 
        {
        Toast.makeText(this, "Posit", Toast.LENGTH_LONG).show();
         }    
       });
        convertView.setTag(holderodd);

    } else {
        holderodd = (InviteOddViewHolder) convertView.getTag();

    }
    return convertView;
}

class InviteOddViewHolder {
    public Button button;

}

答案 2 :(得分:0)

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub

    String selection = l.getItemAtPosition(position).toString();
    Toast.makeText(this.getActivity(), selection, Toast.LENGTH_LONG).show();
}

答案 3 :(得分:0)

为了您的信息,只要您的ListView元素中存在可点击元素(如按钮或图像按钮),它们就会控制点击事件。并且您的ListView将无法接受点击事件。

所以,onListItemClick(...)在这里没用。

您只需在适配器类上为您的按钮编写setOnClickListener,然后获取ListView的所选位置。