实现的关键之处就是给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

更多相关文章

  1. 彻底解决android surfaceview下触摸和键盘切换导致的键盘按键死
  2. android 之Dialog的多种Dialog对话框(以及反射在自定义对话框的
  3. android 对话框模板布局之一
  4. android 写布局的时候注意大小写
  5. Android应用程序中模拟发送键盘触摸消息

随机推荐

  1. Android中的消息机制
  2. 获取Nexus系列手机驱动(用于编译Android(
  3. Google将在Android 2.2中提供Adobe Flash
  4. Android add prebuilt lib(*.so) to Andr
  5. Android多媒体学习一:Android中Image的简
  6. Android下使用Hessian与Java服务端通讯
  7. Binder研究之一   制定计划
  8. Android读写XML(中)——SAX
  9. [置顶] Android 定时任务的多种实现方式
  10. Android SystemProperties.get()和System