2016-04-15 9 views
0

ダイアログが表示されずに画面が暗くなります。それは変だけど、何が起こるのか分からない。ダイアログが表示されずに画面が暗くなるだけです

これは私のフラグメントクラスにダイアログを表示する私の方法です。 :

public void helloType(String id, String name) { 
    AddHelloDialog dialog = AddHelloDialog.newInstance(id, name); 
    dialog.show(getChildFragmentManager(), "Add hello"); 
} 

そして、これは私のAddHelloDialogクラスです:

public class AddHelloDialog extends DialogFragment { 
    public static String HELLO_TYPE = null; 
    private static String mName; 
    private static String mId; 

    BusManager mBusManager; 

    public static AddHelloDialog newInstance(String id, String name) { 
     AddHelloDialog dialog = new AddHelloDialog(); 
     mId = id; 
     mName = name; 
     return dialog; 
    } 

    @NonNull 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     View v = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_add_hello, null, false); 
     ButterKnife.bind(this, v); 
     mBusManager = BusManager.get(); 

     if (getArguments() != null) 
      builder.setTitle(R.string.hello_dialog_title) 
       .setCancelable(true) 
       .setView(v) 
       .setNegativeButton(R.string.picture_dialog_cancel, new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         dismiss(); 
        } 
       }); 
     return builder.create(); 
    } 

    @OnClick(R.id.hello1) 
    public void onHello1Click() { 
     HELLO_TYPE = "1"; 
     addUserToNamedList(); 
     dismiss(); 
    } 

    public void addUserToNamedList() { 
     //API connection 
    } 
} 

それはなぜですか?何か考えましたか?

+1

add dialog_add_hello.xml code al so – USKMobility

+0

dialog_add_hello.xml:http://pastebin.com/SPMgZ1zX – y07k2

答えて

0

レイアウトを拡張する際にビューグループ参照nullを渡して、カスタムダイアログを作成しています。

LayoutInflater.from(getActivity()).inflate(R.layout.dialog_add_hello, null, false); 

したがって、レイアウトを親ビューで添付することはできません。

詳細な例https://github.com/codepath/android_guides/wiki/Using-DialogFragmentについてonViewCreated(...)メソッド

@Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     // for example 
     mEditText = (EditText) view.findViewById(R.id.txt_your_name); 


    } 

にリスタクリック

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.dialog_add_hello, container); 
    } 

onCreateViewでカスタムレイアウト(...)を膨らませると、ビューのIDを取得し、登録

http://developer.android.com/reference/android/app/DialogFragment.html

関連する問題