按钮单击xml中的侦听器

时间:2016-07-26 06:54:31

标签: android xml

对于按钮单击侦听器代码在活动中定义单击侦听器时运行正常,但在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();

        }
    });

2 个答案:

答案 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