在我的项目中,我正在使用 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/