我的应用程序中有一个项目,单击它,它会弹出一个带有文本框和按钮的警告对话框。它有点笨重,文本框没有聚焦,因此您必须单击它才能调出键盘。有没有更好的方法来提示输入文字?
答案 0 :(得分:1)
如果您需要让它始终打开,您可以使用
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
然后使用editText.requestFocus将文本放入那里。
或者在EditText布局上使用android:inputMethod并添加“alwaysVisible”标志。
答案 1 :(得分:0)
您可以在AlertDialog上的EditText上创建焦点侦听器,然后获取AlertDialog的窗口。从那里你可以通过调用setSoftInputMode来制作软键盘。
final AlertDialog dialog = ...;
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
答案 2 :(得分:0)
AlertDialog.Builder builder = new AlertDialog.Builder(tab3.this);
builder.setTitle(params[4]);
final EditText et = new EditText(tab3.this);
et.setText(params[5]);
builder.setView(et);
builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
params[5] = et.getText().toString();
ViewGroup vg = (ViewGroup) arg1;
TextView txv = (TextView)vg.findViewById(R.id.datetext_view2);
txv.setText(params[5]);
form_adapter.datas.put(ckey, params);
save(GlobalVars.current_id,form_adapter.datas);
}
});
final AlertDialog alert = builder.create();
et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
alert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
alert.show();