尝试为按钮设置OnClickListener

时间:2014-01-12 19:46:45

标签: android

我正在尝试创建一个自定义对话框,但是当我调用OnClickListener并且它作为参数传入OnClickListener()类时,我收到错误。错误是

The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (new OnClickListener(){})

它也说错误消息类型视图,不应该是Button,这可能是问题吗?

// error message on line below
Button dialogButton = (Button) dialog.findViewById(R.id.action_settings);

// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        dialog.dismiss();
    }
});

2 个答案:

答案 0 :(得分:2)

我猜你导入错误

确保你有

import android.view.View.OnClickListener;

你也说

but I'm getting errors when I call setOnClickListener and itpass in a OnClickListener() class as the parameter.

您需要实现OnClickListener接口。你使用一个匿名的内部类。

您可以执行以下操作

dialogButton.setOnClickListener(new View.OnClickListener() {
     @Override 
     public void onClick(View v) {
                    dialog.dismiss();
      }
});

示例:

http://androidexample.com/Custom_Dialog_-_Android_Example/index.php?view=article_discription&aid=88&aaid=111

答案 1 :(得分:0)

考虑到不是在活动中实现onClick方法,而是可以在定义按钮的xml布局上使用android:onClick属性。

<Button
 android:layout_height="wrap_content"
 android:layout_width="wrap_content"
 android:text="@string/self_destruct"
 android:onClick="doSomething" />

然后在活动中实现doSomething方法:

 public void doSomething(View view) {
 // Kabloey
 }

更多详情:

Button description in Api reference