重访AlertDialog和AlertDialog.Builder

程序显示效果(图):

这一次要把里面的用到的类,弄清楚些

logindialog.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/usernameTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginTop="1dp" android:layout_alignParentTop="true" android:textStyle="bold" android:text="用户名:"/> <EditText android:id="@+id/usernameEditText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_marginTop="1dp" android:layout_below="@id/usernameTextView"/> <TextView android:id="@+id/passwordTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginTop="5dp" android:layout_below="@id/usernameEditText" android:textStyle="bold" android:text="密码:"/> <EditText android:id="@+id/passwordEditText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:layout_marginTop="1dp" android:layout_below="@id/passwordTextView"/> </RelativeLayout>


main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="登录对话框实现" /> <Button android:id="@+id/loginButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="登录"/> </LinearLayout>


AlertDialogActivity.java

package com.zeph.android.alertdialog.login; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; 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.Toast; public class AlertDialogActivity extends Activity { private Button loginButton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); loginButton = (Button) findViewById(R.id.loginButton); loginButton.setOnClickListener(new ButtonOnClickListener()); } class ButtonOnClickListener implements OnClickListener { @Override public void onClick(View v) { //Builder是AlertDialg的内部类(public static class AlertDialog.Builder) //AlertDialog的构造方法都是protected类型所以不能直接通过new关键字来创建AlertDialog的对象。 //AlertDialog.Builder的create的方法可以创建一个AlertDialog的对象,它有点类似工厂模式。 Builder builder = new AlertDialog.Builder(AlertDialogActivity.this); builder.setPositiveButton("登录",new DialogInterfacePosOnClickListener()); builder.setNegativeButton("取消",new DialogInterfaceNegOnClickListener()); AlertDialog loginAlertDialog = builder.create(); loginAlertDialog.setTitle("登录对话框"); //LayoutInflater类是一个用来将XML布局文件实例化为一个相一致的View对象。 //同样采用工厂模式,使用getLayoutInflater方法去获得一个已经与当前Context相挂钩的一个 //标准LayoutInflater实例。 LayoutInflater factory = getLayoutInflater(); View loginDialogView = factory.inflate(R.layout.logindialog, null); loginAlertDialog.setView(loginDialogView); loginAlertDialog.show(); } } class DialogInterfacePosOnClickListener implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(AlertDialogActivity.this, "你点击了登录按钮",Toast.LENGTH_SHORT).show(); } } class DialogInterfaceNegOnClickListener implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub Toast.makeText(AlertDialogActivity.this, "你点击了取消按钮",Toast.LENGTH_SHORT).show(); } } }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值