Java 如何从Android中的按钮列表中确定按下了哪个按钮?
我有一个用于cardview的xml文件,将在我的主android类的recyclerview中使用。此cardview包含一个用于从列表中删除cardview的按钮。我遇到的问题是,recyclerview中的所有按钮都具有相同的onClick值,我不知道如何区分它们 以下是cardview xml中的我的按钮:Java 如何从Android中的按钮列表中确定按下了哪个按钮?,java,android,xml,Java,Android,Xml,我有一个用于cardview的xml文件,将在我的主android类的recyclerview中使用。此cardview包含一个用于从列表中删除cardview的按钮。我遇到的问题是,recyclerview中的所有按钮都具有相同的onClick值,我不知道如何区分它们 以下是cardview xml中的我的按钮: <Button android:layout_width="wrap_content" android:layout_height="wrap_content"
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delete"
android:id="@+id/btnDelete"
android:onClick="DeleteCard"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
我想从date获取文本,并将其用作参数,以删除SharedReferences中的该键。以下是按下删除按钮时运行的方法:
public void DeleteCard(View view){
SharedPreferences.Editor editor = history.edit();
editor.remove("Date Here");
editor.commit();
}
在onBindViewHolder(非xml)中实现onclick on按钮,并向该按钮添加位置标记或唯一标识符。因此,当您将单击时,请在内部单击onclick extract tag from view object并执行所需的操作。视图将传递给
DeleteCard
方法,因此您可以使用view.getId()
获取视图的id,然后您可以像这样切换id:
public void DeleteCard(View view) {
switch(view.getId()){
case R.id.buttonDelete:
....
break;
case R.id.buttonAdd:
...
break;
}
}
从XML中删除onClick()
,并在onCreateViewHolder(..)
方法中添加click侦听器。该位置可以从ViewHolder类中的getPosition()
方法中检索,该类现在已被弃用
您可以使用getAdapterPosition()
或getLayoutPosition()
获取位置
如何将onClick()添加到onCreateViewHolder方法中?抱歉,我对Android非常陌生。这应该会帮助你:我如何从onCreate方法访问按钮视图?请注意,最好使用上下文操作栏进行删除操作。
public void DeleteCard(View view) {
switch(view.getId()){
case R.id.buttonDelete:
....
break;
case R.id.buttonAdd:
...
break;
}
}