Android2.2中在AlertDialog… 分类: Android开发 2014-05-30 10:56 52人阅读 评论(0) 收藏
在Android开发中,总会用到使用AlertDialog+EditText组件呈现给用户,让用户填写一些信息,那么在AlertDialog对话框中如何添加出EditText文本框组件呢,这里我自己总结了一种方法来实现:
在这里,我们想实现的逻辑是:点击"我要登录"按钮,然后再当前页面中弹出一个对话框,对话框中是让用户填写登录的账号与密码,然后点击"登录"按钮后在当前页面中显示用户输入的账号与密码信息。
 
创建主配置文件main.xml文件:
 
<?xml version="1.0" encoding="utf-8"?>
Java代码
- 
<LinearLayout 
xmlns:android= "http://schemas.android.com/apk/res/android" - 
 
 "vertical"android:orientation=  - 
 
 "fill_parent"android:layout_width=  - 
 
 "fill_parent"android:layout_height=  - 
 
>  - 
 
 "match_parent"<LinearLayout android:layout_width= android:layout_height= "wrap_content"android:id= "@+id/linearLayout1"> - 
 
 "wrap_content"<Button android:layout_height= android:id= "@+id/button1"android:layout_width= "match_parent"android:text= "@string/login"></Button> - 
 
</LinearLayout>  - 
</LinearLayout> 
 
 
创建登录使用的配置文件edittext.xml
 
 
<?xml version="1.0" encoding="utf-8"?>
Java代码
- 
<LinearLayout 
xmlns:android= "http://schemas.android.com/apk/res/android" - 
 
 "vertical"android:orientation=  - 
 
 "fill_parent"android:layout_width=  - 
 
 "fill_parent"android:layout_height=  - 
 
>  - 
 
 "match_parent"<TableLayout android:layout_width= android:layout_height= "wrap_content"android:id= "@+id/tableLayout1"> - 
 
 "@+id/tableRow1"<TableRow android:id= android:layout_width= "wrap_content"android:layout_height= "wrap_content"android:padding= "10dip"> - 
 
 "@+id/textView1"<TextView android:id= android:text= "@string/name"android:layout_height= "wrap_content"android:layout_width= "wrap_content"android:textSize= "20dip"></TextView> - 
 
 "1"<EditText android:layout_weight= android:text= "请输入用户名"android:id= "@+id/editText1"android:layout_width= "wrap_content"android:layout_height= "wrap_content"></EditText> - 
 
</TableRow>  - 
 
</TableLayout>  - 
 
 "match_parent"<TableRow android:layout_width= android:layout_height= "wrap_content"android:id= "@+id/tableRow2"android:clickable= "true"android:padding= "10dip"> - 
 
 "@+id/textView2"<TextView android:id= android:text= "@string/pass"android:layout_height= "wrap_content"android:layout_width= "wrap_content"android:textSize= "20dip"></TextView> - 
 
 "1"<EditText android:layout_weight= android:text= "请输入密码"android:id= "@+id/editText2"android:layout_width= "wrap_content"android:layout_height= "wrap_content"></EditText> - 
 
</TableRow>  - 
</LinearLayout> 
 
在类MainActivity中的代码:
 
 
Java代码
- package 
cn.android.activity;  -  
 - import 
android.app.Activity;  - import 
android.app.AlertDialog;  - import 
android.content.DialogInterface;  - import 
android.os.Bundle;  - import 
android.view.LayoutInflater;  - import 
android.view.View;  - import 
android.view.View.OnClickListener;  - import 
android.widget.Button;  - import 
android.widget.EditText;  - import 
android.widget.Toast;  -  
 - public 
class MainActivity extendsActivity implementsOnClickListener {  - 
 
 - 
 
 @Override - 
 
 publicvoid onCreate(Bundle savedInstanceState) {  - 
 
 super.onCreate(savedInstanceState); - 
 
setContentView(R.layout.main);  -  
 - 
 
 this.findViewById(R.id.button1);Button button1 = (Button)  - 
 
 this);button1.setOnClickListener(  - 
 
}  -  
 - 
 
 @Override - 
 
 publicvoid onClick(View arg0) {  - 
 
 - 
 
 "COLOR:<SPAN style= #ff0000" > - 
 
 this.getSystemService(LAYOUT_INFLATER_SERVICE);LayoutInflater inflater = (LayoutInflater) MainActivity.  - 
 
 finalView null);</SPAN>view = inflater.inflate(R.layout.edittext,  - 
 
 - 
 
 - 
 
 - 
 
 - 
 
 newAlertDialog.Builder(MainActivity. this).setTitle("用户登录").<SPANstyle= "COLOR:#ff0000" >setView(view)</SPAN>.setPositiveButton("登录",newDialogInterface.OnClickListener() {  - 
 
 - 
 
 @Override - 
 
 publicvoid onClick(DialogInterface intarg0, arg1) {  - 
 
 "COLOR:<SPAN style= #ff0000" > - 
 
EditText nameEditText = (EditText) view.findViewById(R.id.editText1);  - 
 
 - 
 
String username = nameEditText.getText().toString();  - 
 
 - 
 
 - 
 
EditText passEditText = (EditText) view.findViewById(R.id.editText2);  - 
 
 - 
 
String userpass = passEditText.getText().toString();</SPAN>  - 
 
 - 
 
 - 
 
 this,Toast.makeText(MainActivity. "您的用户名是:"+username+","+"您的密码是:"+userpass, Toast.LENGTH_LONG).show();  - 
 
}  - 
 
 - 
 
 "退出",}).setNegativeButton( new DialogInterface.OnClickListener() {  - 
 
 - 
 
 @Override - 
 
 publicvoid onClick(DialogInterface intarg0, arg1) {  - 
 
 this,Toast.makeText(MainActivity. "您取消了登录", Toast.LENGTH_LONG).show();  - 
 
}  - 
 
}).show();  - 
 
}  - } 
 
 
这里我们用到的方法是把其他配置文件中的视图引入到当前视图的 AlertDialog中,作为住页面其中的一个组成部分。
运行结果示意图:
 
![[转载]Android2.2中在AlertDialog对话框中添加EditText](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
                    
                
                
            
        
浙公网安备 33010602011771号