Когда я прокручиваю файл recyclerview. элементы в нем автоматически нажимаются. как решить эту проблему.
это мой recyclerview (OnItemTouchListner). при автоматической прокрутке элементов получить щелчок
recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
View view=rv.findChildViewUnder(e.getX(),e.getY());
String profile=null;
if (view!=null){
int position=rv.getChildAdapterPosition(view);
try {
JSONObject jsonObject=new JSONObject(arrayList.get(position));
profile=jsonObject.getString("profile");
} catch (JSONException e1) {
e1.printStackTrace();
}
Intent intent=new Intent(getActivity(),ProfileActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Bundle bundle=new Bundle();
bundle.putInt("position",position+1);
bundle.putString("profile",profile);
intent.putExtras(bundle);
startActivity(intent);
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
});
добавить код и описание к вопросу.
Предоставьте код метода прослушивания кликов
я обновляю свой вопрос
Ты можешь использовать
holder.yourLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
JSONObject jsonObject=new JSONObject(arrayList.get(position));
profile=jsonObject.getString("profile");
} catch (JSONException e1) {
e1.printStackTrace();
}
Intent intent=new Intent(getActivity(),ProfileActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Bundle bundle=new Bundle();
bundle.putInt("position",position+1);
bundle.putString("profile",profile);
intent.putExtras(bundle);
mContext.startActivity(intent);
}
});
почему элементы нажимались при прокрутке в моем предыдущем коде
потому что, когда вы прокручиваете, вы касаетесь ячейки recyclerview. вы использовали recyclerview.addOnItemTouchListener. прокручиваешь, трогаешь, так работает. вместо этого пользователь recyclerview.setOnClickListener. рекомендуется использовать прослушиватель кликов в классе адаптера.
Вам необходимо предоставить более подробную информацию и соответствующий код. Это никому не поможет, и никто не сможет ответить на ваши вопросы