Builder'ı kullanarak ve özel bir görünüm ayarlayarak bir AlertDialog oluşturmaya çalışıyorum.Bir DialogFragment içinde bir AlertDialog için özel düzenini şişirmeye çalışırken StackOverflowError
@Override
public Dialog onCreateDialog(Bundle savedInstanceState){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.enter_time);
LinearLayout outerLayout = (LinearLayout) getLayoutInflater(savedInstanceState)
.inflate(R.layout.time_entry_dialog, null);
...
}
Ve burada LogCat çıktı: Ben onCreateDialog iç görünümünü şişirmek için denediğimde, StackOverflowError .. İşte
o onCreateDialog geri döndüğü noktaya kadar kodudur olsun:02-28 22:30:04.220: E/AndroidRuntime(4250): FATAL EXCEPTION: main
02-28 22:30:04.220: E/AndroidRuntime(4250): java.lang.StackOverflowError
02-28 22:30:04.220: E/AndroidRuntime(4250): at android.app.Activity.getSystemService(Activity.java:4009)
02-28 22:30:04.220: E/AndroidRuntime(4250): at android.view.LayoutInflater.from(LayoutInflater.java:210)
02-28 22:30:04.220: E/AndroidRuntime(4250): at android.view.ContextThemeWrapper.getSystemService(ContextThemeWrapper.java:75)
02-28 22:30:04.220: E/AndroidRuntime(4250): at com.android.internal.app.AlertController$AlertParams.<init>(AlertController.java:812)
02-28 22:30:04.220: E/AndroidRuntime(4250): at android.app.AlertDialog$Builder.<init>(AlertDialog.java:374)
02-28 22:30:04.220: E/AndroidRuntime(4250): at android.app.AlertDialog$Builder.<init>(AlertDialog.java:359)
02-28 22:30:04.220: E/AndroidRuntime(4250): at com.sweatyreptile.chee.runtimetracker.TimeEntryDialogFragment.onCreateDialog(TimeEntryDialogFragment.java:18)
02-28 22:30:04.220: E/AndroidRuntime(4250): at android.support.v4.app.DialogFragment.getLayoutInflater(DialogFragment.java:295)
02-28 22:30:04.220: E/AndroidRuntime(4250): at com.sweatyreptile.chee.runtimetracker.TimeEntryDialogFragment.onCreateDialog(TimeEntryDialogFragment.java:21)
02-28 22:30:04.220: E/AndroidRuntime(4250): at android.support.v4.app.DialogFragment.getLayoutInflater(DialogFragment.java:295)
02-28 22:30:04.220: E/AndroidRuntime(4250): at com.sweatyreptile.chee.runtimetracker.TimeEntryDialogFragment.onCreateDialog(TimeEntryDialogFragment.java:21)
02-28 22:30:04.220: E/AndroidRuntime(4250): at android.support.v4.app.DialogFragment.getLayoutInflater(DialogFragment.java:295)
...etc
DÜZENLEME:
mDialog = onCreateDialog(savedInstanceState);
: Ben
DialogFragment.getLayoutInflater() kaynağında bu çizgiyi bulundu
Öyleyse, sonsuz yinelemeye neden olmadan onCreateDialog'un içinde bir LayoutInflator alamıyorsam, özel bir AlertDialog için görünümü nasıl şişiririm? Sorun bulunduğunda
Time_entry_dialog'da neye sahipsiniz? Ayrıca, stacktrace'i istisna ile göndermekten korkmayın. – Luksprog
Lütfen Logcat çıkışınızı ekleyin –
LogCat çıkışını ekledim. @Luksprog, 'time_entry_dialog' sadece merkezlenmiş yer çekimi olan bir LinearLayout'tur –