我目前正在嘗試構建一個簡單的設置片段警報框。與片段警報框的故障
我已經構建了警告框的主體,但是我注意到實際的Dialog方法沒有使用。此外,該對話框方法取代了onCreate()
方法。
我該如何實際使用Dialog方法?在創建對話框方法後,我似乎無法簡單地調用它,因爲它出現錯誤。
我必須在某些XML中引用它嗎? 如果是這樣,那麼哪個XML - Fragment的XML或其父Activity的XML?
以下是我的Dialog Fragment的代碼。我還沒有修改它的XML。
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
public class ExceedingLimitFragment extends Fragment {
public Dialog onCreateDialogExceed (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.exceeding_limit_title);
builder.setMessage(R.string.exceeding_limit_message);
builder.setPositiveButton(R.string.exceeding_limit_positive, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent ExceedingLimitPositiveIntent = new Intent (ExceedingLimitFragment.this.getActivity(), SettingsMenu.class);
startActivity(ExceedingLimitPositiveIntent);
}
});
builder.setNegativeButton(R.string.exceeding_limit_negative, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
return builder.create();
}
}
你好。關於第一點,我已經刪除了onCreate調用中的'超級'標籤。這個可以嗎?另外,在第二段中,Studio聲明下一個類不會覆蓋它的超類。所以我已經把它留下了。而在最後一段中,只是一個問題 - 我可以使用dialog.cancel()來代替嗎?謝謝! – Mildwood
如果你從Android重寫一個方法,確保在調用其他任何東西之前先調用'super'。看看FragmentDialogs的文檔,看看onCreateDialog的作用和創建時間:)至於'dialog.cancel()'問題,它取決於你想做什麼。如果你想關閉對話框,你應該調用'fragmentDialog.dismiss()'而不是'dialog.cancel()'。 FragmentDialogs基本上是一個承載對話框的片段,因此你希望片段爲你處理對話框。 –