我最近遇到一个问题,我的android按钮需要轻按两次才能工作。我已经做了很多研究,但是这些解决方案都没有帮助。这是我的代码:
这是我定义按钮的方式:
<Button
android:id="@+id/add_to_list_button"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_marginBottom="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:focusableInTouchMode="false"
android:text=""
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
它是Recycler View Cell
中的一个按钮。这就是我在 Adapter中设置OnclickListener
方法的方法! -不是Aktivity或片段:(我已经在适配器中定义了此按钮)
mAddButton = (Button) itemView.findViewById(R.id.add_to_list_button);
这是onBindViewHolder
方法
holder.mAddButton.setBackgroundResource(R.mipmap.ic_add_hs_24dp);
holder.mAddButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https:xxx"));
v.getContext().startActivity(browserIntent);
}
});
我希望你们能帮助我确定问题所在。我已经为此工作了两天。非常感谢您的帮助。
答案 0 :(得分:0)
如果RecyclerView包含接受输入事件的组件(例如EditText或Spinner),则可能在捕获OnItemClickListener或OnItemLongClickListener()中的单击事件时会出现问题。
可能的解决方案是将您的EditText / Spinner设置为禁用事件,以便将单击事件降级为按钮
您可以通过设置
android:focusable =“ false”
和
android:focusableInTouchMode =“ false”