对于按钮单击侦听器代码在活动中定义单击侦听器时运行正常,但在xml中定义单击侦听器时遇到问题,没有拼写不匹配
当在xml中定义侦听器时出现logcat上的错误,为什么?
java.lang.IllegalStateException:无法在父级或祖先语句中找到方法addButtonClicked(View)for android:onClick属性在视图类android.support.v7.widget.AppCompatButton上定义,id为'addButton'
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add"
android:id="@+id/addButton"
android:layout_marginTop="50dp"
android:onClick="addButtonClicked"
android:layout_below="@+id/inputField"
android:layout_alignLeft="@+id/inputField"
android:layout_alignStart="@+id/inputField" />
这是活动类
在xml
中定义click listener时public void addButtonClicked()
{
String text = inputField.getText().toString();
Products p = new Products(text);
dbObj.addProduct(p);
printDatabase();
}
从“活动”中定义了单击侦听器时,这可以正常工作
addButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String text = inputField.getText().toString();
Products p = new Products(text);
dbObj.addProduct(p);
printDatabase();
}
});
答案 0 :(得分:4)
将此添加到您的活动中:
public void addButtonClicked(View view) {
//Your code here
}
答案 1 :(得分:2)
找不到方法addButtonClicked(View)
addButtonClicked()方法缺失。
首先创建addButtonClicked()
方法。
public void addButtonClicked(View v)
{
// Add your Staff here
}
Clean-Rebuild-Run
。