我试图将onClick方法front()
添加到我的Button。但是,当我单击Button时,它会返回以下错误:
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" />
Register.java:
public class Register extends AppCompatActivity {
private Button front;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
front = (Button) findViewById(R.id.front);
}
private void front(View v) {
Toast.makeText(Register.this, "String", Toast.LENGTH_LONG).show();
}
}
知道问题是什么吗?
答案 0 :(得分:2)
您活动中的front method
应公开。你现在把它变成了私人。
这也在Android Developer网站中进行了描述。
为了使其正常工作,该方法必须是公共的,并接受View作为其唯一参数
public void front(View v) {
Toast.makeText(Register.this, "String", Toast.LENGTH_LONG).show();
}
答案 1 :(得分:0)
这是按钮活动的点击操作。
front.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(this, "String", Toast.LENGTH_LONG).show();
}
});
通过xml onClick
,
public void front(View v) {
Toast.makeText(this, "String", Toast.LENGTH_LONG).show();
}
答案 2 :(得分:0)
确保正确编写属性值 onClick 的语法。就我而言,我忘记了字符}
<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)}">
GL