2.5.3 使用alertDialog创建自定义对话框

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btnColor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="自定义颜色列表" />

    <Button
        android:id="@+id/btnLogin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="登陆框" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="TextView" />

</LinearLayout>
package com.moon.hello2;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.R.anim;
import android.R.bool;
import android.R.integer;
import android.animation.AnimatorSet.Builder;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.res.TypedArray;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.widget.GridLayout;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.AnimationUtils;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.Gallery;
import android.widget.GridView;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.RatingBar;
import android.widget.SimpleAdapter;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.SeekBar;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
import android.widget.ViewSwitcher.ViewFactory;

public class MainActivity extends Activity {
    private final String[] colorStrings = new String[]{"红色","绿色","黄色"};
    private static final int DIALOG_SC = 1;
    private final boolean[] checkStatus = new boolean[]{true, true, false};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.activity_main);
        Button button = (Button)findViewById(R.id.btnColor);
        List<Map<String, Object>> list = new ArrayList<Map<String,Object>>();
        for (int i = 0; i < colorStrings.length; i++) {
            Map<String, Object> newMap = new HashMap<String, Object>();
            newMap.put("color", colorStrings[i]);
            newMap.put("img", R.drawable.ic_launcher);
            list.add(newMap);
        }
        final SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.simple, new String[]{"img","color"}, new int[]{R.id.listIcon,R.id.listText});
        final TextView textView = (TextView)findViewById(R.id.textView1);
        button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setAdapter(adapter, new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface arg0, int pos) {
                        // TODO Auto-generated method stub
                        textView.setText("选择了"+colorStrings[pos]);
                    }
                });
                builder.setTitle("自定义dialog");
                builder.setIcon(R.drawable.ic_launcher);
                builder.create().show();
            }
        });
        //创建一个登陆框dialog
        final GridLayout loginGridLayout = (GridLayout)this.getLayoutInflater().inflate(R.layout.login, null);
        Button loginButton = (Button)findViewById(R.id.btnLogin);
        loginButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                android.app.AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
                builder.setIcon(R.drawable.ic_launcher);
                builder.setView(loginGridLayout);
                builder.setPositiveButton("登陆", null);
                builder.setNegativeButton("取消", null);
                builder.create().show();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

比较有意思的是inflater在英文中是充气泵的意思, inflate是充气

时间: 2024-10-08 08:08:28

2.5.3 使用alertDialog创建自定义对话框的相关文章

2.5.2 使用alertdialog 创建列表对话框

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" android:orientation="vertical&q

Adrnoid开发系列(二十五):使用AlertDialog创建各种类型的对话框

AlertDialog能够生成各种内容的对话框.可是每种对话框都会有这样的的结构: 类似下边这样的的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDgwMDUzMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 这仅仅是最简单的对话框. 我们来看下创建一个对话框须要的步骤: 1.使用创建AlertDialog.Builder对

android:常用的AlertDialog对话框及自定义对话框

常用的Dialog有确认对话框,单选按钮对话框,多选按钮对话框,复选按钮对话框另外还有自定义的对话框 AlertDialog的常用方法 setTitle:为对话框设置标题 setMessage:为对话框设置内容 setIcon:为对话框设置图标 setItems设置对话框要显示的list setMultiChoiceItems:一般用于复选框显示 setSingleChoiceItem:,设置单选按钮 setNeutralButton:普通按钮 setPositiveButton:添加确定按钮

第6章(3) AlertDialog(警告对话框)

分类:C#.Android.VS2015: 创建日期:2016-02-08 一.简介 AlertDialog也是Android系统当中常用的对话框之一. 在一个AlertDialog中,可以有一个Button.两个Button.3个Button.另外,还可以自定义对话框的样式,比如带有单选按钮的对话框.带有复选框的对话框等. 1.基本用法 一般通过AlertDialog.Builder.Create()方法来构造该对话框,然后就可以通过dialog调用对应的方法.常用方法如下: SetTitle

View(视图)——对话框之自定义对话框

一.自定义对话框 1.不能直接实例化使用 2.使用内部构造器来生成对话框 3.new  AlertDialog.Builder(context)  实例化构造器 1-setTitle (标题) 2-setMessage (消息) 3-按钮 1°确认按钮  setPositiveButton(“文字”,点击事件监听器) 2°否认按钮  setNegativeButton(“文字”,点击事件监听器) 3°中立按钮  setNeutralButton(“文字”,点击事件监听器) 4-show() 创建

Android—关于自定义对话框的工具类

开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函数的参数中,并且是静态,可以用类直接调用此函数. public class MyAutoDialogUtil { private static AlertDialog dialog; /** * * @param context * 上下文 * @param text * 自定义显示的文字 * @p

Android实例-手机安全卫士(十)-自定义对话框

一.目标. 当点击“手机防盗”时弹出自定义的设置密码对话框.如果已经设置密码,则弹出自定义的输入密码对话框. 二.代码实现. 1.在layout文件夹下新建xml(取名setpwddialog.xml)文件用于设置自定义对话框的UI. 新建xml文件代码如下; 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.a

手机安全卫士------手机防盗页面之自定义对话框&amp;MD5加密

功能需求: 用户点击主页面上的"手机防盗"按钮时,判断用户是否设置过密码. 如果没有设置过,则弹出输入密码对话框 如果设置过了,则弹出设置密码对话框 用户的密码要进行MD5加密之后再存储在内存中 技术点: - 自定义对话框的使用 - MD5加密的实现方式 - SharedPreferences的读写操作 自定义对话框 1.在layout目录下创建一个布局文件,把自定义的对话框布局设置成功 具体代码实现如下 设置密码对话框的布局代码: <?xml version="1.0

Android自定义组件系列【13】——Android自定义对话框如此简单

在我们的日常项目中很多地方会用到对话框,但是Android系统为我们提供的对话框样子和我们精心设计的界面很不协调,在这种情况下我们想很自由的定义对话框,或者有的时候我们的对话框是一个图片,没有标题和按钮,例如这样的一系列需求,这一篇文章我们来给大家介绍一下如何像使用Activity一样来自定义我们的对话框. 一般自定义对话框有下面几种办法: 1.重写Dialog来实现. 2.获取Dialog的Window对象实现. 3.使用WindowManager来实现. 4.使用DialogTheme来实现