在Dialog之后请求EditText时不显示键盘

时间:2015-10-09 10:51:29

标签: java android dialog android-edittext focus

我有一个问题。

我制作了自定义Dialog(加载微调器)。 我触及了Button。然后使用表格打开RelativeLayout并编辑与搜索类似的文本。

我的问题是,当我在按钮触摸和打开布局之间显示加载器时,它会聚焦EditText,但不会显示键盘。当我不使用我的对话框时,它工作正常。我在前台和线程中尝试过它 - 结果相同。

XML :               

        <ProgressBar
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:indeterminateOnly="false"
            android:id="@+id/loader_spiner"

            android:background = "@xml/progress"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true" />

    </RelativeLayout>

代码

 public void prepareLoader(){
        loader = new Dialog(context);
        loader.setContentView(R.layout.ag_loader);
        loader.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        spinerLoader = (ProgressBar) loader.findViewById(R.id.loader_spiner);
    }

    public void showLoader(){

        spinerLoader.startAnimation(AnimationUtils.loadAnimation(this, R.xml.splash_spinner));
        loader.show();
    }

    public static void hideLoader(){

        loader.hide();

    }

非常感谢。

1 个答案:

答案 0 :(得分:1)

in&#39; loader.show()&#39;您可以尝试使用此代码来显示键盘:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

或:

loader.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

或:

loader.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

或者如果不能再次工作,请尝试:

Handler delayedRun = new Handler();
delayedRun.post(new Runnable() {
  @Override
  public void run() {
    youreditText.requestFocus();
    InputMethodManager mgr = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.showSoftInput(youreditText, InputMethodManager.SHOW_IMPLICIT);
  }
});