一种是发出提示信息的普通对话框,另一种是用用户登录对话框
设计用户布局
<?xml version="1.0" encoding="utf-8" ?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:gravity="center">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:text="打开普通对话框"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:text="打开输入对话框"/>
</LinearLayout>
设计登录对话框的界面布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text1"
android:text="@string/txt1"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edt1"/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txt2"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/edt2"/>
</LinearLayout>
Strings.xml
<resources>
<string name="app_name">ex3_5</string>
<string name="txt1">用户名</string>
<string name="txt2">密码</string>
</resources>
设计控制文件
package com.example.ex3_5;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button but1,but2;
TextView txt2;
LinearLayout login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
but1=(Button)findViewById(R.id.button1);
but2=(Button)findViewById(R.id.button2);
but1.setOnClickListener(new mclick());
but2.setOnClickListener(new mclick());
}
class mclick implements View.OnClickListener {
AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);//新建消息对话框dialog
@Override
public void onClick(View view){
if(view==but1){
dialog.setTitle("警告");//设置对话框的标题
dialog.setIcon(R.drawable.con2);//设置对话框的图标
dialog.setMessage("本项操作可能会导致信息泄露!");//设置对话框显示的内容
dialog.setPositiveButton("确定",new okClick());//设置对话框的“确定”按钮
dialog.create();//创建对象框
dialog.show();//显示对象框
}
if(view==but2) {
login = (LinearLayout) getLayoutInflater().inflate(R.layout.login, null);
//从另外的布局中关联组件
dialog.setTitle("用户登录").setMessage("请输入用户名和密码").setView(login);
dialog.setPositiveButton("确定", new loginClick());//setPositiveButton 确定用户的输入
dialog.setNegativeButton("退出", new exitClick());//setNegativeButton取消用户的输入
dialog.setIcon(R.drawable.icon1);
dialog.create();
dialog.show();
}
}
}
class okClick implements DialogInterface.OnClickListener{
@Override
public void onClick(DialogInterface dialog,int which){
dialog.cancel();//取消对话框
}
}
class loginClick implements DialogInterface.OnClickListener{
public void onClick(DialogInterface dialog,int which){
txt2=(EditText)login.findViewById(R.id.edt2);//关联布局文件中的组件
if(txt2.getText().toString().equals("admin")){
Toast.makeText(getApplicationContext(),"登录成功", Toast.LENGTH_SHORT).show();
}//取输入编辑框中的值与密码匹配
else
Toast.makeText(getApplicationContext(),"密码错误",Toast.LENGTH_SHORT).show();
dialog.dismiss();//关闭对话框
}
}
class exitClick implements DialogInterface.OnClickListener{
@Override
public void onClick(DialogInterface dialog,int which){
MainActivity.this.finish();//退出MainActivity程序
}
}
}