2011-09-12 37 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

按我的來實現在按鈕單擊事件看法的最佳方式。

您可以使用android:onClick屬性爲XML佈局中的按鈕指定一個方法,而不是將OnClickListener應用於您的活動中的按鈕。例如:

<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給出。

+1

有些事不知道以前不知道+1 –