Tôi đang cố gắng tạo DialogFragment bằng cách sử dụng Bố cục của riêng mình.
Tôi đã thấy một vài cách tiếp cận khác nhau. Đôi khi bố cục được đặt trong OnCreateDialog như thế này: (Tôi đang sử dụng Mono nhưng tôi đã quen với Java)
public override Android.App.Dialog OnCreateDialog (Bundle savedInstanceState)
{
base.OnCreateDialog(savedInstanceState);
AlertDialog.Builder b = new AlertDialog.Builder(Activity);
//blah blah blah
LayoutInflater i = Activity.LayoutInflater;
b.SetView(i.Inflate(Resource.Layout.frag_SelectCase, null));
return b.Create();
}
Cách tiếp cận đầu tiên này phù hợp với tôi ... cho đến khi tôi muốn sử dụng findViewByID.
vì vậy sau một chút tìm hiểu trên Google, tôi đã thử cách tiếp cận thứ hai liên quan đến việc ghi đèOnCreateView
Vì vậy, tôi đã nhận xét ra hai dòng trong số OnCreateDialog
đó đặt Bố cục và sau đó thêm dòng này:
public override Android.Views.View OnCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View v = inflater.Inflate(Resource.Layout.frag_SelectCase, container, false);
//should be able to use FindViewByID here...
return v;
}
điều này mang lại cho tôi một lỗi đáng yêu:
11-05 22:00:05.381: E/AndroidRuntime(342): FATAL EXCEPTION: main
11-05 22:00:05.381: E/AndroidRuntime(342): android.util.AndroidRuntimeException: requestFeature() must be called before adding content
Tôi bối rối.