Android的ListView的OnItemClickListener无法获取其内部项的点击事件。
创始人
2024-10-07 07:01:32
0

如果ListView中的项内部有Clickable视图,则这些视图将首先捕获点击事件,并阻止OnClick事件传递到ListView的OnItemClickListener。要解决此问题,您可以在ListView的适配器中设置Clickable视图的点击监听器,并在onItemClick()回调方法中添加适当的处理函数。以下是一个示例代码:

public class MyAdapter extends ArrayAdapter {

...

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = convertView;
    ViewHolder holder;
    if (view == null) {
        view = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
        holder = new ViewHolder();
        holder.textView = view.findViewById(R.id.text);
        holder.button = view.findViewById(R.id.button);
        view.setTag(holder);
    } else {
        holder = (ViewHolder) view.getTag();
    }

    final MyItem item = getItem(position);
    holder.textView.setText(item.getText());

    holder.button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // do something
        }
    });

    holder.textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // do something
        }
    });

    return view;
}

private static class ViewHolder {
    TextView textView;
    Button button;
}

}

在您的ListView上设置OnItemClickListener,然后在onItemClick()回调方法中添加适当的处理函数:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { // do something MyItem item = (MyItem) parent.getItemAtPosition(position); Toast.makeText(MainActivity.this, item.getText(), Toast.LENGTH_SHORT).show(); } });

在这个示例代码中,我们在ListView的适配器中将Clickable视图的点击事件监听器设置为ViewHolder中的OnClickListener。然后,在onItemClick()方法中,我们可以通过getItemAtPosition()方法获取点击的项并执行适当的操作。这样,当列表项由于Clickable视图的点击事件而被点击时,我们仍然可以处理此项的点击事件。

相关内容

热门资讯

第六分钟辅助!steampok... 第六分钟辅助!steampokermaster辅助,sohoopoker辅助,经验教程(有挂透视)1...
6分钟辅助!约局吧德州有挂吗,... 6分钟辅助!约局吧德州有挂吗,epoker有透视吗,项目教程(真是有挂)1、首先打开约局吧德州有挂吗...
7分钟辅助!pokemmo手机... 7分钟辅助!pokemmo手机版脚本免费,wepoker数据分析工具,手册教程(有挂透视)暗藏猫腻,...
6分钟辅助!aapoker能控... 6分钟辅助!aapoker能控制牌吗,pokemmo脚本最新版,教程书教程(有挂辅助)1、aapok...
第3分钟辅助!werplan脚... 第3分钟辅助!werplan脚本,德普之星透视辅助插件,技法教程(有挂方法)1、德普之星透视辅助插件...
四分钟辅助!wpk是真的还是假... 四分钟辅助!wpk是真的还是假的,we poker辅助器下载,练习教程(有挂解密)1、下载好wpk是...
第2分钟辅助!哈糖大菠萝有挂吗... 第2分钟辅助!哈糖大菠萝有挂吗,hh poker辅助有用吗,指南教程(详细教程)哈糖大菠萝有挂吗脚本...
六分钟辅助!wepoker作弊... 六分钟辅助!wepoker作弊辅助,德州之星扫描器,诀窍教程(有挂秘籍)1、每一步都需要思考,不同水...
第七分钟辅助!wepoker透... 第七分钟辅助!wepoker透视脚本下载,德普之星私人局辅助免费,模块教程(有挂实锤)1、让任何用户...
第6分钟辅助!德州hhpoke... 第6分钟辅助!德州hhpoker脚本,pokemmo手机版脚本免费,妙招教程(有挂神器);1、完成p...