我在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开发,我不是英语母语人士,谢谢你的帮助!
答案 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
的所选位置。