gpt4 book ai didi

android - RecyclerView onLongClickListener 拒绝触发

转载 作者:搜寻专家 更新时间:2023-11-01 08:44:51 24 4
gpt4 key购买 nike

我想在 RecyclerView 中实现 CardView 的长按

布局:

<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:scrollbars="vertical"
android:longClickable="true"
android:hapticFeedbackEnabled="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>

我试过这个:

mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view);
mRecyclerView.setLayoutManager(new LinearLayoutManager(Utils.context));
mRecyclerView.setOnLongClickListener(new AdapterView.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Toast.makeText(Utils.context,"dsfd",Toast.LENGTH_LONG).show();
return true;
}
});

我还尝试在 RecyclerView.ViewHolder 类中实现此事件,但没有任何效果。我有长按效果,但事件本身没有被触发。没有 onItemLongClickListener。我也试过这个:RecyclerView onClick .

我错过了什么?

最佳答案

您可以创建接口(interface),您应该在其中实现您的 onLongClicked(int position) 方法。并使用它。按照以下步骤创建您的 onLongClickListener:

创建您的界面:

public interface IRecyclerViewClickListener {

void onLongClicked(int position);
}

在您的 Activity/fragment 中创建监听器对象,并在创建适配器方法中将此监听器对象传递给您的适配器。示例:

// ... some code ...
adapter = new MoviesListAdapter(getActivity(), list, listener);
rvDialogs.setAdapter(adapter);
// ... code ...

在您自己的 ViewHolder 构造函数中的适配器中,在 itemView 上设置长监听器:

public class MyViewHolder extends RecyclerView.ViewHolder {

TextView Title;
// ...

public MessageViewHolder(View itemView) {
super(itemView);

Title = (TextView) itemView.findViewById(R.id.tvDialogTitle);
// ...

itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
listener.onLongClicked(getAdapterPosition());
return false;
}
});
}
}

在您的 Activity/fragment 中设置您的 IListener 之后:

listener = new IRecyclerViewClickListener() {
@Override
public void onLongClicked(int position) {
Toast.makeText(getActivity(), String.valueOf(position), Toast.LENGTH_SHORT).show();
}
};

希望对你有帮助!祝你好运,对不起我的英语不好 ;)

关于android - RecyclerView onLongClickListener 拒绝触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29456469/

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