要在Android 9(API 28)上的AlertDialog中使EditText自动获取焦点,可以通过以下步骤进行设置:
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
final EditText editText = new EditText(MainActivity.this);
editText.setId(R.id.edit_text_id);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
editText.setLayoutParams(layoutParams);
LinearLayout linearLayout = new LinearLayout(MainActivity.this);
linearLayout.addView(editText);
builder.setView(linearLayout);
builder.setTitle("标题");
builder.setMessage("消息");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 在这里处理确定按钮的点击事件
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 在这里处理取消按钮的点击事件
}
});
AlertDialog alertDialog = builder.create();
alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
}
});
alertDialog.show();
通过以上步骤,您应该能够在Android 9(API 28)上的AlertDialog中实现EditText自动获取焦点的功能。