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" -
android:orientation= -
android:layout_width= -
android:layout_height= -
> -
<LinearLayout android:layout_width= android:layout_height= "wrap_content"android:id= "@+id/linearLayout1"> -
<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" -
android:orientation= -
android:layout_width= -
android:layout_height= -
> -
<TableLayout android:layout_width= android:layout_height= "wrap_content"android:id= "@+id/tableLayout1"> -
<TableRow android:id= android:layout_width= "wrap_content"android:layout_height= "wrap_content"android:padding= "10dip"> -
<TextView android:id= android:text= "@string/name"android:layout_height= "wrap_content"android:layout_width= "wrap_content"android:textSize= "20dip"></TextView> -
<EditText android:layout_weight= android:text= "请输入用户名"android:id= "@+id/editText1"android:layout_width= "wrap_content"android:layout_height= "wrap_content"></EditText> -
</TableRow> -
</TableLayout> -
<TableRow android:layout_width= android:layout_height= "wrap_content"android:id= "@+id/tableRow2"android:clickable= "true"android:padding= "10dip"> -
<TextView android:id= android:text= "@string/pass"android:layout_height= "wrap_content"android:layout_width= "wrap_content"android:textSize= "20dip"></TextView> -
<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 { -
-
-
void onCreate(Bundle savedInstanceState) { -
-
setContentView(R.layout.main); -
-
Button button1 = (Button) -
button1.setOnClickListener( -
} -
-
-
void onClick(View arg0) { -
-
<SPAN style= #ff0000" > -
LayoutInflater inflater = (LayoutInflater) MainActivity. -
View null);</SPAN>view = inflater.inflate(R.layout.edittext, -
-
-
-
-
AlertDialog.Builder(MainActivity. this).setTitle("用户登录").<SPANstyle= "COLOR:#ff0000" >setView(view)</SPAN>.setPositiveButton("登录",newDialogInterface.OnClickListener() { -
-
-
void onClick(DialogInterface intarg0, arg1) { -
<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> -
-
-
Toast.makeText(MainActivity. "您的用户名是:"+username+","+"您的密码是:"+userpass, Toast.LENGTH_LONG).show(); -
} -
-
}).setNegativeButton( new DialogInterface.OnClickListener() { -
-
-
void onClick(DialogInterface intarg0, arg1) { -
Toast.makeText(MainActivity. "您取消了登录", Toast.LENGTH_LONG).show(); -
} -
}).show(); -
} - }
这里我们用到的方法是把其他配置文件中的视图引入到当前视图的 AlertDialog中,作为住页面其中的一个组成部分。
运行结果示意图: