不由XML Layout 文件而由程序动态生成AlertDialog 及在其中附加更多UI 控件


分类: Android
  145人阅读  评论(0)  收藏  编辑  删除
我需要在一个Android程序弹出一个对话框,该对话框包含TextView/EditText/Button 等多个控件,借鉴《Create custom dialog using AlertDialog.Builder, with dynamic content 》这篇博文(可由google通过输入博文标题找到这篇博文),使用了如下的代码。技术关键点:1)Layout也是View;2)View需要指定Layout来使其正常工作。
[java]  view plain copy
  1. // 在一个Activity中,创建包含TextView 和EditText 的AlertDialog  
  2.   
  3.            String dialogText = "登录完成: " + str;  
  4.           
  5.         TextView textOutput = new TextView(this);  
  6.         textOutput.setText("调试日志:" + logStr + "\n将调试日志发送到以下手机号码");  
  7.         LayoutParams textOutputLayoutParams = new LayoutParams(  
  8.                 LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);  
  9.         textOutput.setLayoutParams(textOutputLayoutParams);  
  10.   
  11.         EditText phoneNum = new EditText(this);  
  12.         phoneNum.setText("138****1111");  
  13.         phoneNum.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,  
  14.                 LayoutParams.WRAP_CONTENT));  
  15.           
  16.         LinearLayout dialogLayout = new LinearLayout(this);  
  17.         dialogLayout.setOrientation(LinearLayout.VERTICAL);  
  18.         dialogLayout.addView(textOutput);  
  19.         dialogLayout.addView(phoneNum);  
  20.           
  21.         dialogBuilder.setTitle(dialogText)  
  22.                      .setIcon(android.R.drawable.ic_dialog_info)  
  23.                      .setView(dialogLayout)  
  24.                      .setPositiveButton("确定"new DialogInterface.OnClickListener() {  
  25.                         @Override  
  26.                         public void onClick(DialogInterface dialog, int which) {  
  27.                             Uri uri = Uri.parse("smsto:138****1111");//FIXME Hardcode  
  28.                             Intent itnt = new Intent(Intent.ACTION_SENDTO, uri);  
  29.                             itnt.putExtra("sms_body", logStr);  
  30.                             startActivity(itnt);  
  31.                         }  
  32.                      })    
  33.                      .setNegativeButton("取消"null)    
  34.                      .show();    
  35.     }  

完毕 by lucoz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值