gpt4 book ai didi

java - ListView - 具有自定义适配器的 ClickListener 删除项目触摸突出显示

转载 作者:太空宇宙 更新时间:2023-11-04 14:22:03 25 4
gpt4 key购买 nike

我为我的 ListView 编写了一个自定义适配器。现在它包含不同类型的项目(比如说标题和文本)。

标题不需要附加操作,因此我不想在单击项目时看到项目触摸突出显示。然而,文本可以执行每个文本不同的 Action 。这是我的自定义适配器的代码。

    @SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent) {

MyItemHolder myItemHolder;

if (convertView == null) {
//...;
convertView.setTag(myItemHolder);
} else {
myItemHolder = (MyItemHolder) convertView.getTag();
}

MyItem myItem = myItems.get(position);
if (myItem.isTitle()) {
convertView.setOnClickListener(null);
} else {
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do nothing at the moment
}
});
}
return convertView;
}

如您所见,设置空单击监听器会禁用列表的项目单击动画,因此我对此表示同意。但是,当设置空点击监听器时,它也会删除此动画(实际上调用 setOnClickListener 会删除动画)。

如果有帮助的话,这是我的 ListView xml:

<ListView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/some_id"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:cacheColorHint="@android:color/transparent"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"/>

如何让默认项目在我的 ListView 中为适配器内没有标题的项目单击动画?

最佳答案

您应该在每个列表项上使用 OnItemClickListener 而不是 onclick 监听器。要禁用“title”类型项目的 onClick 效果,您可以在适配器类中使用 isEnabled 方法。

@Override
public boolean isEnabled(int position) {
// TODO Auto-generated method stub
return super.isEnabled(position);
}

关于java - ListView - 具有自定义适配器的 ClickListener 删除项目触摸突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27079241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com