2011-09-12 11 views
-1

メインビューのボタンのクリックリスナーを実装したいと思います。私のコードは以下のandroidのOnClickListenerを実装する際の問題点

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 

を次のように私にエラーを示します。助けてください。

答えて

2

あなたはmFinishLinstener変数をインスタンス化するために、正しいインターフェイスを使用していない...

あなたのインポートがDialogInterfaceを指定すると、そのビューを混乱さ持っている可能です。

View.OnClickListenerを明示的に指定してください。

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

このコードを試してみてください:::

final Button button = (Button) findViewById(R.id.btnFinish); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Perform action on click 
      } 
     }); 
0

単にこれを試してみてください:

あなたもコード以下のように使用することができます
button.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
     // do something when the button is clicked 
    } 
}; 
0

..

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

button.setOnClickListener(new View.OnClickListener(){ 
@Override 
public void onClick(View v) 
{ 
    //Write Your code here 
} 
}); 
0

あなたはまた、XMLでonclickを宣言することもできます。

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

そして、あなたのコードでは、としての機能を定義します。ボタンのクリックイベントに実装するための私の意見につき最善の方法として

public void buttonClick(View view) 
{ 
    // handle click 
} 
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)メソッドを呼び出します。これを機能させるには、メソッドをpublicにして、唯一のパラメータとしてViewを受け入れる必要があります。例えば:

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

注:上記のコードはAndroid SDK - Buttonで与えられます。

+1

これまでに知られていなかったことがあるもの –

関連する問題