在 DialogFragment 中单击 "Cancel" 按钮后如何启动软键盘?

How do I launch the soft keyboard after "Cancel" button is clicked in DialogFragment?

Fragment.java 文件:

....
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.skyfrag_layout, container, false);
    getDialog().setTitle("Delete skycard");
    Button btnCancel = (Button) rootView.findViewById(R.id.btnCancel);
    btnCancel.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
          getDialog().cancel();
        }
    });
...

我在 onClick 函数中尝试了以下各项,但均无效。

1) getDialog().getWindow().setSoftInputMode( LayoutParams.SOFT_INPUT_STATE_VISIBLE);

2)InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);

我猜你正试图再次显示键盘,因为你有一个小部件需要在对话框关闭后进行编辑。

您是否尝试过调用 showSoftInputFromInputMethod (IBinder token, int flags) 而不是 toggleSoftInputFromWindow ?请参阅文档 here。 (注:IBinder可以通过yourView.getWindowToken()获取)

希望对您有所帮助。