我有一個擴展對話框類的自定義對話框。啓動時的Android自定義對話框類顯示軟鍵
我必須使其關注其edittext中的一個,並顯示對話框啓動時的軟鍵。
我已經看了幾個使用inputmanager的答案,但沒有那麼多運氣。
調用對話框的活動被設置爲默認隱藏軟鍵,該軟鍵在清單中設置。
在這種情況下,我能做些什麼呢?
我有一個擴展對話框類的自定義對話框。啓動時的Android自定義對話框類顯示軟鍵
我必須使其關注其edittext中的一個,並顯示對話框啓動時的軟鍵。
我已經看了幾個使用inputmanager的答案,但沒有那麼多運氣。
調用對話框的活動被設置爲默認隱藏軟鍵,該軟鍵在清單中設置。
在這種情況下,我能做些什麼呢?
我會建議你在start_of_the_dialog你應該關閉鍵盤通過摺疊#SOF答案。如果它不起作用,只需在處理程序的幫助下添加100毫秒的延遲即可在對話開始時關閉鍵盤。
一個假設第一:
通過這一說法:
它調用的對話框設置爲默認隱藏,這是在清單中設置的自定義功能鍵的活動。
這是否意味着它具有這樣的windowSoftInputMode
屬性?
<activity
android:name=".MainActivity"
...
android:windowSoftInputMode="stateHidden">
...
</activity>
一種方法是在對話框的創作設置OnShowListener
。
在您類是-擴展,對話框類,你可以創建一個OnStateListener
,並宣佈它的構造是這樣的:
public class MyDialog extends Dialog {
public MyDialog(final Context context) {
super(context);
setContentView(R.layout.dialog_mydialog);
setOnShowListener(new OnShowListener() {
@Override
public void onShow(DialogInterface dialogInterface) {
displayKeyboard(context);
}
});
}
private void displayKeyboard(Context context) {
View view = findViewById(R.id.et_dialog_field);
InputMethodManager inputMethodManager =
(InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(
view.getApplicationWindowToken(),
InputMethodManager.SHOW_FORCED, 0);
}
}
上的活動我假設你有類似:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
MyDialog dialog = new MyDialog(MainActivity.this);
dialog.show();
}
});
外核層警告的是,如果有人要求設置OnShowListener
它將覆蓋你的。
我得到了show-soft-input來自this answer的一段代碼。
ediText.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
InputMethodManager inputMethodManager = (InputMethodManager)
getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
},100);
將文本編輯爲焦點,但您想隱藏鍵盤? – surya
在活動中,它不能顯示軟鍵。 – March3April4