参考原文:http://www.open-open.com/lib/view/open1328972876311.html
一.Dialog款式如下
二.实现效果图如下
三.源代码
1.MainAcitvity.java
package com.example.dialogtest; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainDialogActivity extends Activity { private Button b1,b2,b3,b4,b5; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_dialog); b1=(Button)findViewById(R.id.button1); b2=(Button)findViewById(R.id.button2); b3=(Button)findViewById(R.id.button3); b4=(Button)findViewById(R.id.button4); b5=(Button)findViewById(R.id.button5); b1.setOnClickListener(new ButtonListener()); b2.setOnClickListener(new ButtonListener()); b3.setOnClickListener(new ButtonListener()); b4.setOnClickListener(new ButtonListener()); b5.setOnClickListener(new ButtonListener()); } private class ButtonListener implements OnClickListener{ public void onClick(View v) { final String[] itemStrings = {"Item1","Item2","Item3"}; switch(v.getId()){ case R.id.button1: AlertDialog.Builder dialog=new AlertDialog.Builder(MainDialogActivity.this); dialog.setTitle("简单弹出框") .setIcon(android.R.drawable.ic_dialog_info) .setMessage("弹出框") .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { //写你自己的代码 } }) .setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel();//取消弹出框 } }).create().show(); break; case R.id.button2: AlertDialog.Builder builder=new AlertDialog.Builder(MainDialogActivity.this); builder.setTitle("带列表弹出框") .setIcon(android.R.drawable.ic_lock_lock) .setItems(itemStrings, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "你点击的是"+itemStrings[which], Toast.LENGTH_LONG).show(); } }).create().show(); break; case R.id.button3: AlertDialog.Builder builder1=new AlertDialog.Builder(MainDialogActivity.this); builder1.setTitle("带Radio弹出框") .setIcon(android.R.drawable.ic_lock_lock) .setSingleChoiceItems(itemStrings,-1, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "你点击的是"+itemStrings[which], Toast.LENGTH_LONG).show(); } }).create().show(); builder1.setCancelable(true); break; case R.id.button4: LayoutInflater inflater = (LayoutInflater)getApplicationContext() .getSystemService(LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.course_custom_dialog, null); AlertDialog.Builder builder2=new AlertDialog.Builder(MainDialogActivity.this); builder2.setView(view); builder2.setTitle("添加课程") .setPositiveButton("保存", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }) .setNegativeButton("取消", null) .create().show(); break; case R.id.button5: MainDialogActivity.this.finish(); break; default: break; } } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main_dialog, menu); return true; } }
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="简单弹出框" /> <Button android:id="@+id/button2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="带列表弹出框" /> <Button android:id="@+id/button3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="带Radio弹出框" /> <Button android:id="@+id/button4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="自定义对话框" /> <Button android:id="@+id/button5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="退出" /> </LinearLayout>
3.自定义对话框布局文件
<?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" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.01" android:text="课程名称:" /> <EditText android:id="@+id/etCName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" > <requestFocus /> </EditText> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="学 时:" /> <EditText android:id="@+id/etHours" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="学 分:" /> <EditText android:id="@+id/etCredit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/textView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.01" android:text="授课教师:" /> <EditText android:id="@+id/etTNo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:ems="10" /> </LinearLayout> </LinearLayout>