java - RecyclerView 单击两次

标签 java android android-fragments android-recyclerview

在我的项目中,我正在使用 recyclerview,当我单击其中的元素时,它应该打开另一个 fragment 或 Activity (取决于哪个元素),但是当我在某个项目上单击两次时,它会打开 2 个副本 fragment 或 Activity 。

所以我的代码是:

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    public TextView descriptionTV;
    public TextView paymentStatusTV;
    public TextView statusTextView;
    public TextView deliveryStatusTV;
    public NetworkImageView orderImage;
    public ImageView paymentStatusImage;
    public ImageView orderStatusImage;

    public ViewHolder(View itemView, int position) {
        super(itemView);
        descriptionTV = (TextView) itemView.findViewById(R.id.descriptionTV);
        paymentStatusTV = (TextView) itemView.findViewById(R.id.paymentStatusTV);
        statusTextView = (TextView) itemView.findViewById(R.id.statusTextView);
        deliveryStatusTV = (TextView) itemView.findViewById(R.id.deliveryStatusTV);
        orderImage = (NetworkImageView) itemView.findViewById(R.id.orderImage);
        paymentStatusImage = (ImageView) itemView.findViewById(R.id.paymentStatusImage);
        orderStatusImage = (ImageView) itemView.findViewById(R.id.orderStatusImage);
        itemView.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if(clickListener != null) {
            clickListener.itemClicked(v, getAdapterPosition());
        }
    }
}

public void setClickListener(ClickListener clickListener) {
    this.clickListener = clickListener;
}

public interface ClickListener {
    void itemClicked(View view, int position);
}

这就是我处理 Fragment 中点击的方式:

 @Override
public void itemClicked(View view, int position) {

    Bundle bundle = new Bundle();
    Intent intent = new Intent(getActivity(), OrderInformationActivity.class);
    OrderData orderData = cityList.get(position);
    bundle.putString(TAG_ID, orderData.getOrderID());
    intent.putExtras(bundle);
    startActivity(intent);

}

那么,我怎样才能防止这种两次点击呢? :)

最佳答案

请将以下代码放入项目属性中以解决问题

            android:clickable="true"
            android:focusable="false"
            android:focusableInTouchMode="false"

关于java - RecyclerView 单击两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31023526/

相关文章:

android - 如何在单击时不更改底部导航 View 项目颜色

java - 抽屉导航布局工具栏中的标题未更改

java - 如何手动更新和滚动 JScrollPane

java - 为什么我会收到这些错误,Java TrueType错误?

java - 如何在Java中修改两个类的对象?

android - 使用 "Google Play Game Services"播放时突然断开连接

android - 如何在 Firebase 项目中启用 Google Analytics

java - 无法使用 JSch 和 JDK 8 打开 ssh session

java - 更改 PopupWindow 中 TextView 的文本不起作用

android - 在 LinearLayout 中的现有 fragment 下方动态添加 fragment