android中AlertDialog包含EditText时弹出键盘
16lz
2021-01-23
实现的关键之处就是给AlertDialog添加一个显示监听器,显示的时候将键盘显示出来。
主程序:
package com.example.alertdialog;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.DialogInterface.OnShowListener;import android.os.Bundle;import android.view.View;import android.view.inputmethod.InputMethodManager;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void onClick(View v){if(v.getId() == R.id.btn_show_dialog){showDialog(this);}}public void showDialog(final Context context){AlertDialog.Builder dialog = new AlertDialog.Builder(context);dialog.setTitle("请输入验证码");final EditText et = new EditText(context);et.setHint("in put your confirm code");dialog.setView(et);//给对话框添加一个EditText输入文本框//给对话框添加一个确定按钮,同样的方法可以添加一个取消按钮dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {Toast.makeText(context, "提交验证码……", 3000).show();}});//下面是弹出键盘的关键处AlertDialog tempDialog = dialog.create();tempDialog.setView(et, 0, 0, 0, 0);tempDialog.setOnShowListener(new OnShowListener() {public void onShow(DialogInterface dialog) {InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);imm.showSoftInput(et, InputMethodManager.SHOW_IMPLICIT);}});tempDialog.show();}}
布局文件:
运行之后点击按钮则弹出对话框,同时弹出键盘。
上面的对话框中的控件简单,所以用java代码实现的布局,如果控件较多,需要用xml进行布局,这时解决办法可以参考下面的文章
http://www.cuiweiyou.com/671.html
关键之处是用View alertDialogView = View.inflate(HomeActivity.this, R.layout.自定义布局, null);加载自定义的对话框布局文件,然后上文中的
AlertDialog tempDialog = dialog.create();tempDialog.setView(et, 0, 0, 0, 0);
tempDialog传入自定义布局的view对象,即上面的 alertDialogView 更多相关文章
- 彻底解决android surfaceview下触摸和键盘切换导致的键盘按键死
- android 之Dialog的多种Dialog对话框(以及反射在自定义对话框的
- android 对话框模板布局之一
- android 写布局的时候注意大小写
- Android应用程序中模拟发送键盘触摸消息