簡體   English   中英

對話框后請求EditText時不顯示鍵盤

[英]Doesn't show Keyboard when requesting EditText after Dialog

我有個問題。

我制作了自定義Dialog (正在加載微調器)。 我按下Button 然后使用表格打開RelativeLayout並編輯類似於搜索的文本。

我的問題是,當我在按鈕觸摸和打開Layout之間顯示加載程序時,它專注於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();

    }

非常感謝。

在“ loader.show()”中,您可以嘗試以下代碼來顯示鍵盤:

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);
  }
});

我找到了一種解決方法,可以花一些時間讓鍵盤出現。

new android.os.Handler().postDelayed(
    new Runnable() {
        public void run() {
            if (thisSearchable) {
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.showSoftInput(searchInput, InputMethodManager.SHOW_IMPLICIT);
            }
        }
    }, 300);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM