java - 单击 ListView 上的按钮会显示相同的输出

标签 java android

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/

相关文章:

java - 关于 "Lombok Requires Annotation Processing"的警告

android - 如何在 android 上的 googleMap 中自定义标记 InfoWindow

android - 如何根据文本的第一个字符从资源中动态加载颜色

java - 如何在警报对话框中为微调器设置适配器

java - 从 ListView 连接到蓝牙设备

java - 日期不正确异常

java - 数组未调整大小

Java如何读取和删除文件内容。

android - ConstraintLayout 子项的边距不显示?

java - 在 Android 上连接到 EWS 的其他方法