public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.joinlistviewitem, parent, false);
resultp = data.get(position);
name = (TextView) itemView.findViewById(R.id.personname);
name.setText(resultp.get(Joinlistview.RANK));
Button deletejoin=(Button)itemView.findViewById(R.id.delete);
deletejoin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//resultp.get("userId");
// TODO Auto-generated method stub
Log.e("delete clicked", "delete clicked");
Toast.makeText(context,"clicked"+resultp.get(Joinlistview.RANK), Toast.LENGTH_SHORT).show();
}
});
return itemView;
}
我使用上面的代码来单击 ListView 上的按钮。如果我单击按钮,它会播种用户名及其位置。但它在所有位置都显示相同的名称。??如何解决这个问题??
最佳答案
使用 getTag/setTag
方法获取 onClick
中的当前行值,如下所示:
Button deletejoin=(Button)itemView.findViewById(R.id.delete);
deletejoin.setTag(resultp.get(Joinlistview.RANK));
点击按钮:
Toast.makeText(context,"clicked "+ v.getTag().toString(),
Toast.LENGTH_SHORT).show();
关于java - 单击 ListView 上的按钮会显示相同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33686484/