Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.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.lang.IllegalStateException:在android:onClick属性的父或祖先上下文中找不到方法_Java_Android - Fatal编程技术网

java.lang.IllegalStateException:在android:onClick属性的父或祖先上下文中找不到方法

java.lang.IllegalStateException:在android:onClick属性的父或祖先上下文中找不到方法,java,android,Java,Android,我正在尝试将onClick方法添加到我的按钮前面。但是,当我单击按钮时,返回以下错误: java.lang.IllegalStateException: Could not find method front(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'fron

我正在尝试将onClick方法添加到我的按钮前面。但是,当我单击按钮时,返回以下错误:

java.lang.IllegalStateException: Could not find method front(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'front'
以下是我的xml:

<Button
    android:id="@+id/front"
    android:onClick="front"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Text" />
你知道问题出在哪里吗?

你在活动中的前台方法应该是公开的。你现在已经保密了

这在网站上也有描述

为了使其工作,该方法必须是公共的,并接受视图作为其唯一参数

你的活动中的前台方法应该是公开的。你现在已经保密了

这在网站上也有描述

为了使其工作,该方法必须是公共的,并接受视图作为其唯一参数


这是通过活动为按钮提供单击操作的方式

front.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(this, "String", Toast.LENGTH_LONG).show();

            }
        });
要通过xml onClick提供按钮操作


这是通过活动为按钮提供单击操作的方式

front.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(this, "String", Toast.LENGTH_LONG).show();

            }
        });
要通过xml onClick提供按钮操作


确保在单击时正确写入属性值的语法。就我而言,我忘记了角色}


GL

请确保在单击时正确写入属性值的语法。就我而言,我忘记了角色}


GL

该方法也是正确的。您可以在xml中定义click-in-toothat方法,该方法也是正确的。您可以在xml中定义click,我建议您直接在代码中设置onClickListener是最好的方法,它永远不会失败,并且您不需要在主代码中声明这么多函数。我建议您直接在代码中设置onClickListener是最好的方法,它永远不会失败,您不需要在主代码中声明这么多函数。而且,不要立即运行Apply changes,它不会生效。除非您运行'app'Shift+F10且不立即运行应用更改,否则不会生效。除非您运行“应用程序”Shift+F10
front.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(this, "String", Toast.LENGTH_LONG).show();

            }
        });
public void front(View v) {
                Toast.makeText(this, "String", Toast.LENGTH_LONG).show();
}
<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:focusable="true"
    android:onClick="@{() -> viewModel.onItemClick(position)}">