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代码
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:orientation="vertical"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     >   
  6.     <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1">   
  7.         <Button android:layout_height="wrap_content" android:id="@+id/button1" android:layout_width="match_parent" android:text="@string/login"></Button>   
  8.     </LinearLayout>   
  9. </LinearLayout>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1">
        <Button android:layout_height="wrap_content" 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代码
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:orientation="vertical"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     >   
  6.     <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tableLayout1">   
  7.         <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dip">   
  8.             <TextView android:id="@+id/textView1" android:text="@string/name" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="20dip"></TextView>   
  9.             <EditText android:layout_weight="1" android:text="请输入用户名" android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>   
  10.         </TableRow>   
  11.     </TableLayout>   
  12.     <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tableRow2" android:clickable="true" android:padding="10dip">   
  13.         <TextView android:id="@+id/textView2" android:text="@string/pass" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="20dip"></TextView>   
  14.         <EditText android:layout_weight="1" android:text="请输入密码" android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>   
  15.     </TableRow>   
  16. </LinearLayout>  
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tableLayout1">
        <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dip">
            <TextView android:id="@+id/textView1" android:text="@string/name" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="20dip"></TextView>
            <EditText android:layout_weight="1" android:text="请输入用户名" android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
        </TableRow>
    </TableLayout>
    <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tableRow2" android:clickable="true" android:padding="10dip">
        <TextView android:id="@+id/textView2" android:text="@string/pass" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="20dip"></TextView>
        <EditText android:layout_weight="1" android:text="请输入密码" android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
    </TableRow>
</LinearLayout>
 

在类MainActivity中的代码:

 

 

Java代码
  1. package cn.android.activity;   
  2.   
  3. import android.app.Activity;   
  4. import android.app.AlertDialog;   
  5. import android.content.DialogInterface;   
  6. import android.os.Bundle;   
  7. import android.view.LayoutInflater;   
  8. import android.view.View;   
  9. import android.view.View.OnClickListener;   
  10. import android.widget.Button;   
  11. import android.widget.EditText;   
  12. import android.widget.Toast;   
  13.   
  14. public class MainActivity extends Activity implements OnClickListener {   
  15.       
  16.     @Override  
  17.     public void onCreate(Bundle savedInstanceState) {   
  18.         super.onCreate(savedInstanceState);   
  19.         setContentView(R.layout.main);   
  20.   
  21.         Button button1 (Button) this.findViewById(R.id.button1);   
  22.         button1.setOnClickListener(this);   
  23.     }   
  24.   
  25.     @Override  
  26.     public void onClick(View arg0) {   
  27.            
  28.         <SPAN style="COLOR: #ff0000">  
  29.         LayoutInflater inflater (LayoutInflater) MainActivity.this.getSystemService(LAYOUT_INFLATER_SERVICE);   
  30.         final View view inflater.inflate(R.layout.edittext, null);</SPAN>   
  31.            
  32.           
  33.            
  34.           
  35.         new AlertDialog.Builder(MainActivity.this).setTitle("用户登录").<SPAN style="COLOR: #ff0000">setView(view)</SPAN>.setPositiveButton("登录",new DialogInterface.OnClickListener() {   
  36.                
  37.             @Override  
  38.             public void onClick(DialogInterface arg0, int arg1) {   
  39.                 <SPAN style="COLOR: #ff0000">  
  40.                 EditText nameEditText (EditText) view.findViewById(R.id.editText1);   
  41.                   
  42.                 String username nameEditText.getText().toString();   
  43.                    
  44.                   
  45.                 EditText passEditText (EditText) view.findViewById(R.id.editText2);   
  46.                   
  47.                 String userpass passEditText.getText().toString();</SPAN>   
  48.                    
  49.                   
  50.                 Toast.makeText(MainActivity.this"您的用户名是:"+username+","+"您的密码是:"+userpass, Toast.LENGTH_LONG).show();   
  51.             }   
  52.               
  53.         }).setNegativeButton("退出"new DialogInterface.OnClickListener() {   
  54.                
  55.             @Override  
  56.             public void onClick(DialogInterface arg0, int arg1) {   
  57.                 Toast.makeText(MainActivity.this"您取消了登录"Toast.LENGTH_LONG).show();   
  58.             }   
  59.         }).show();   
  60.         }   
  61.  
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 extends Activity implements OnClickListener {
        
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                Button button1 = (Button) this.findViewById(R.id.button1);
                button1.setOnClickListener(this);
        }

        @Override
        public void onClick(View arg0) {
                
                
                LayoutInflater inflater = (LayoutInflater) MainActivity.this.getSystemService(LAYOUT_INFLATER_SERVICE);
                final View view = inflater.inflate(R.layout.edittext, null);
                
                
                
                
                new AlertDialog.Builder(MainActivity.this).setTitle("用户登录").setView(view).setPositiveButton("登录",new DialogInterface.OnClickListener() {
                        
                        @Override
                        public void onClick(DialogInterface arg0, int arg1) {
                                
                                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();
                                
                                
                                Toast.makeText(MainActivity.this, "您的用户名是:"+username+","+"您的密码是:"+userpass, Toast.LENGTH_LONG).show();
                        }
                        
                }).setNegativeButton("退出", new DialogInterface.OnClickListener() {
                        
                        @Override
                        public void onClick(DialogInterface arg0, int arg1) {
                                Toast.makeText(MainActivity.this, "您取消了登录", Toast.LENGTH_LONG).show();
                        }
                }).show();
                }
}

 

这里我们用到的方法是把其他配置文件中的视图引入到当前视图的 AlertDialog中,作为住页面其中的一个组成部分。


运行结果示意图:

 

posted @ 2014-05-30 10:56  leansmall  阅读(74)  评论(0编辑  收藏  举报