-1

我想为我的主视图上的按钮实现一个点击监听器。我的代码如下

protected void onCreate(Bundle savedValues) {
    ...
    // Capture our button from layout
    Button button = (Button)findViewById(R.id.btnFinish);
    // Register the onClick listener with the implementation above
    button.setOnClickListener(mFinishListener);
    ...
}

private OnClickListener mFinishListener = new OnClickListener() {
    public void onClick(View v) {
      // do something when the button is clicked
    }
};

但显示我的错误如下

The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (DialogInterface.OnClickListener)  MobileTrackerActivity.java  /MobileTracker/src/com/example/mobiletracker    line 37 Java Problem

我不知道该怎么做。请帮忙。

4

6 回答 6

2

您没有使用正确的接口来实例化mFinishLinstener变量...

您可能有一个导入指定DialogInterface,这会混淆视图。

尝试View.OnClickListener明确指定。

private View.OnClickListener mFinishListener = new View.OnClickListener() {
    public void onClick(View v) {
      // do something when the button is clicked
    }
};
于 2011-09-12T06:00:29.720 回答
2

根据我的意见,为按钮实现点击事件的最佳方式。

您可以使用 android:onClick 属性为 XML 布局中的按钮分配一个方法,而不是对 Activity 中的按钮应用 OnClickListener。例如:

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

现在,当用户单击按钮时,Android 系统会调用 Activity 的 selfDestruct(View) 方法。为了使其工作,该方法必须是公共的并接受一个视图作为它的唯一参数。例如:

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

注意:以上代码在Android SDK - Button中给出。

于 2011-09-12T06:13:57.590 回答
1

试试这个代码:::

final Button button = (Button) findViewById(R.id.btnFinish);
         button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 // Perform action on click
             }
         });
于 2011-09-12T06:03:34.267 回答
0

简单地试试这个:

 button.setOnClickListener(new OnClickListener() {  
@Override   
 public void onClick(View v) {
      // do something when the button is clicked
    }
};
于 2011-09-12T06:04:34.477 回答
0

你也可以使用下面的代码..

Button button = (Button)findViewById(R.id.btnFinish);

button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
   //Write Your code here
}
});
于 2011-09-12T06:05:31.570 回答
0

您还可以在 xml 中声明 onclick。

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onclick="buttonClick" />

在您的代码中,您将函数定义为:

public void buttonClick(View view)
{
    // handle click
}
于 2011-09-12T06:13:22.563 回答