非阻塞的AlertDialog的代码实现

来源:互联网 发布:淘宝类目007是什么牌子 编辑:程序博客网 时间:2024/05/01 07:46

非阻塞的AlertDialog的代码实现如下:

main.xml

<?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">    <Button        android:id="@+id/Button1"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Layout型对话框"/>    <Button        android:id="@+id/Button2"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Layout型对话框"/>    <View        android:id="@+id/View01"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/></LinearLayout>

dialoglayout.xml

<?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="wrap_content"    android:orientation="vertical">    <EditText        android:id="@+id/textInput"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_marginLeft="20dip"        android:layout_marginRight="20dip"        android:textAppearance="?android:attr/textAppearanceMedium" /></LinearLayout>
主代码如下
import android.app.Activity;import android.os.Bundle;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class AbsoluteLayout extends Activity {    Button btnShowDialog;    Button btnShowDialog_Layout;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        //定义按钮        btnShowDialog = (Button) this.findViewById(R.id.Button1);        btnShowDialog.setOnClickListener(new Click());        btnShowDialog_Layout = (Button) this.findViewById(R.id.Button2);        btnShowDialog_Layout.setOnClickListener(new Click());    }    //按键处理    class Click implements OnClickListener {        @Override        public void onClick(View v) {            // TODO Auto-generated method stub            if (v == btnShowDialog)                showDialog(AbsoluteLayout.this);            else if (v == btnShowDialog_Layout)                showDialog_Layout(AbsoluteLayout.this);        }    }    //显示基本的AlertDialog    private void showDialog(Context context) {        AlertDialog.Builder builder = new AlertDialog.Builder(context);        builder.setIcon(R.drawable.bar);        builder.setTitle("Title");        builder.setMessage("content");        //确定按钮        builder.setPositiveButton("Button1",                new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int whichButton) {                        setTitle("点击了对话框上的Button1");                    }                });        //否定按钮        builder.setNeutralButton("Button2",                new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int whichButton) {                        setTitle("点击了对话框上的Button2");                    }                });        //取消按钮        builder.setNegativeButton("Button3",                new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int whichButton) {                        setTitle("点击了对话框上的Button3");                    }                });        builder.show();    }    //显示基于LayoutAlertDialog    private void showDialog_Layout(Context context) {        LayoutInflater inflater = LayoutInflater.from(this);        final View textEntryView = inflater.inflate(                R.layout.dialoglayout, null);        final EditText textInput = (EditText) textEntryView.findViewById(R.id.textInput);        final AlertDialog.Builder builder = new AlertDialog.Builder(context);        builder.setCancelable(false);        builder.setIcon(R.drawable.bar);        builder.setTitle("图片");        builder.setView(textEntryView);        builder.setPositiveButton("确认",                new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int whichButton) {                        setTitle(textInput.getText());                    }                });        builder.setNegativeButton("取消",                new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int whichButton) {                        setTitle(" ");                    }                });        builder.show();    }}
android的alertDialog中封装好的一些Button,一般有三个Button:PositiveButton,NegativeButton,NeutralButton, 这些Button和普通的Button没有任何区别,可以写任意的方法,只是命名上的不同,从名字可以看的出来,代表确定,否定,和中立,其实三个Button可以写你任意的方法,只是位置上的不同而已,确定Button一般靠左,这符合阅读习惯。


0 0