Skip to main content.

公告

今天把博客开通了,今后就给大家分享一些关于Android的信息.

搜索

友情链接

分享一个Android中Dialog的使用例子

1、新建工程:DialogTest

2、编写布局文件:

(1)、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="@string/hello"
    />
    <Button
       android:id="@+id/button01"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/button01"
    />
     <Button
       android:id="@+id/button02"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/button02"
    />
     <Button
       android:id="@+id/button03"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/button03"
    />
     <Button
       android:id="@+id/button04"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:text="@string/button04"
    />
</LinearLayout>
(2)alert_dialog_text_entry.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:id="@+id/username_view"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:text="用户名"
      android:textAppearance="@android:style/TextAppearance.Medium"
    />
    <EditText
      android:id="@+id/username_edit"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:capitalize="none"
      android:textAppearance="@android:style/TextAppearance.Medium"
    />
       <TextView
      android:id="@+id/password_view"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:text="密码"
      android:textAppearance="@android:style/TextAppearance.Medium"
    />
     <EditText
      android:id="@+id/password_edit"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:capitalize="none"
      android:password="true"
      android:textAppearance="@android:style/TextAppearance.Medium"   
    />
</LinearLayout>
3、编写资源文件:strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">对话框</string>
    <string name="app_name">Android Dialog</string>
    <string name="button01">两个button的对话框</string>
    <string name="button02">三个button的对话框</string>
    <string name="button03">可以进行输入的对话框</string>
    <string name="button04">进度框</string>
    <string name="alert_dialog_two_buttons_title">这是一个提示框,点击取消后可以返回。</string>
    <string name="alert_dialog_ok">确定</string>
    <string name="alert_dialog_cancle">取消</string>
    <string name="alert_dialog_three_buttons_title">标题部分</string>
    <string name="alert_dialog_three_buttons_msg">对于程序员或创业团队来说,还是有必要拥有一个属于自己的博客。
    Wordpress 曾经让个人或企业搭建博客变得非常容易。但是我们觉得 Wordpress
       还是有些重量级,所以选择了一个非常轻便的工具 toto,一段只有200多行代码的Ruby应用程序。</string>
       <string name="alert_dialog_something">进入详细</string>
       <string name="alert_diaog_text_entry">请输入</string>
</resources>
4、开发主逻辑代码:DialogTest.java
package com.dialogTest;

import com.listeview.R;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.app.TimePickerDialog;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.method.CharacterPickerDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class DialogTest extends Activity {
    private static final int dialog4 = 4;
    private static final int dialog3 = 3;
    private static final int dialog2 = 2;
    private static final int dialog1 = 1;
    /** Called when the activity is first created. */
    private Button button01;
    private Button button02;
    private Button button03;
    private Button button04;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        button01=(Button)findViewById(R.id.button01);
        button02=(Button)findViewById(R.id.button02);
        button03=(Button)findViewById(R.id.button03);
        button04=(Button)findViewById(R.id.button04);
        
        button01.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                showDialog(dialog1);
            }
        });
        
        button02.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                showDialog(dialog2);
            }
        });
        
        button03.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                showDialog(dialog3);
            }
        });
        
        button04.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                showDialog(dialog4);
            }
        });
        
    }
    @Override
    protected Dialog onCreateDialog(int id) {
        // TODO Auto-generated method stub
        switch(id){
        case dialog1:
            return buildDialog1(DialogTest.this);
        case dialog2:
            return buildDialog2(DialogTest.this);
        case dialog3:
            return buildDialog3(DialogTest.this);
        case dialog4:
            return buildDialog4(DialogTest.this);
        }
        return null;
    }
    private Dialog buildDialog4(Context context) {
        ProgressDialog dialog=new ProgressDialog(context);
        dialog.setTitle("正在下载歌曲");
        dialog.setMessage("请稍候......");
        
        /*TimePickerDialog dialog=new TimePickerDialog(context, 0, null, 0, 0, false);
        dialog.setTitle("时钟");*/
        
        /*DatePickerDialog dialog=new DatePickerDialog(context, 0, null, 0, 0, 0);
        dialog.setTitle("日期");*/
        
        return dialog;
    }
    private Dialog buildDialog3(Context context) {
        LayoutInflater inflater=LayoutInflater.from(this);
        final View textEntryView=inflater.inflate(R.layout.alert_dialog_text_entry, null);
        
        AlertDialog.Builder builder=new AlertDialog.Builder(context);
        builder.setTitle(R.string.alert_diaog_text_entry);
        
        builder.setView(textEntryView); //关键
        builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击对话框上的确定按钮");
            }
        });
        builder.setNegativeButton(R.string.alert_dialog_cancle,new DialogInterface.OnClickListener() {
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击了对话框上的取消按钮");
            }
        });
        return builder.create();
    }
    
    
    private Dialog buildDialog2(Context context) {
        AlertDialog.Builder builder=new AlertDialog.Builder(context);
        builder.setTitle(R.string.alert_dialog_three_buttons_title);
        builder.setMessage(R.string.alert_dialog_three_buttons_msg);
        builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击对话框上的确定按钮");
            }
        });
        builder.setNeutralButton(R.string.alert_dialog_something, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("点击了对话框上的进入详细按钮");
            }
        });
        builder.setNegativeButton(R.string.alert_dialog_cancle, new DialogInterface.OnClickListener() {
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击了对话框上的取消按钮");
            }
        });
        return builder.create();
    }
    
    private Dialog buildDialog1(Context context) {
        // TODO Auto-generated method stub
        AlertDialog.Builder builder=new AlertDialog.Builder(context);
        //builder.setIcon(R.drawable.icon);
        builder.setTitle(R.string.alert_dialog_two_buttons_title);
        builder.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击对话框上的确定按钮");
            }
        });
        builder.setNegativeButton(R.string.alert_dialog_cancle, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                setTitle("单击了对话框上的取消按钮");
            }
        });
        return builder.create();
    }
}
5、运行效果显示:

主程序:

Dialog1:

Dialog2:

Dialog3:

Dialog4:

原文链接

标签: Android, Dialog
Posted by android_boy @ 2011-7-14 23:22:30 阅读(2766) 评论(0)
上一篇:如何通过wifi调试android程序
下一篇:Android通过AsycTask实现异步加载

Feedback

你还可以输入600/600个字符 发表评论
称呼: (必填) 登录 | 开通博客
邮箱: (选填) 你的邮箱地址不会被公开
网站: (选填)
验证码: (必填)