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是充气

你可能感兴趣的:(AlertDialog)