Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Android中的按钮列表中确定按下了哪个按钮?_Java_Android_Xml - Fatal编程技术网

Java 如何从Android中的按钮列表中确定按下了哪个按钮?

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"

我有一个用于cardview的xml文件,将在我的主android类的recyclerview中使用。此cardview包含一个用于从列表中删除cardview的按钮。我遇到的问题是,recyclerview中的所有按钮都具有相同的onClick值,我不知道如何区分它们

以下是cardview xml中的我的按钮:

<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;



    }
}