关于android:如何在DialogFragment中单击“取消”按钮后启动软键盘?

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

Fragment.java文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
....
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? 请参阅此处的文档。
(注意:IBinder可以通过yourView.getWindowToken()获得)

希望这可以帮助。