這是我的對話框dialog_date_range.xml佈局:自定義對話框的onClick錯誤
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:foo="http://schemas.android.com/apk/res/com.example.database_fragment"
android:id="@+id/dialog_body"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="48dp"
android:onClick="toggleDateRange"
android:text="Button" />
</LinearLayout>
在我的活動,我有:
public void toggleDateRange(View v) {
if(dialog == null) {
dialog = new Dialog(context, R.style.PauseDialogAnimation);
dialog.setCancelable(true);
dialog.setContentView(R.layout.dialog_date_range);
dialog.getWindow().getAttributes().windowAnimations = R.style.PauseDialogAnimation;
}
if(dialog.isShowing()) {
dialog.dismiss();
} else {
dialog.show();
}
}
這是當我點擊按鈕,我得到的錯誤:
FATAL EXCEPTION: main E/AndroidRuntime(25357): java.lang.IllegalStateException:
Could not find a method toggleDateRange(View) in the activity class
android.view.ContextThemeWrapper for onClick handler on view class
android.widget.Button
with id 'button1'at android.view.View$1.onClick(View.java:3586)
是您'toggleDateRange()'一個監聽器裏,內部類,什麼的類似?我假設你誇大了上述佈局並將其設置爲對話框? – codeMagic
或者如果你真的想這樣做,那麼從setContentView的VIEW是不正確的。 我創建了一個新項目並添加了完全相同的代碼,並且它可以工作。檢查您是否在設置按鈕的視圖中。 –
這可能聽起來很愚蠢,但請嘗試清理項目和重建?如果您不清潔 – NujnaH