-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

私の意見では、ボタンのクリック時イベントを実装する最良の方法です。

アクティビティのボタンに OnClickListener を適用する代わりに、android:onClick 属性を使用して、XML レイアウトのボタンにメソッドを割り当てることができます。例えば:

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

これで、ユーザーがボタンをクリックすると、Android システムがアクティビティの selfDestruct(View) メソッドを呼び出します。これが機能するためには、メソッドがパブリックであり、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 に答える