您的位置:首页 > 移动开发 > Android开发

android:列表对话框(11)

2016-01-23 00:00 399 查看
摘要: 列表对话框的分类:普通列表对话框、单选列表对话框、多选列表对话框、带图标的列表对话框

package com.example.andday11customdialog;

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

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.provider.Settings;
import android.view.View;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class MainActivity extends Activity {
private TextView show_text;
private int postion;// 全局变量记录选中的位置

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show_text = (TextView) this.findViewById(R.id.show_text);
}

// 简单列表对话框
public void openSimple(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请选择颜色");
builder.setIcon(R.drawable.ic_launcher);
String[] color = { "红色", "蓝色", "黄色" };
builder.setItems(color, new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
show_text.setTextColor(Color.RED);
break;
case 1:
show_text.setTextColor(Color.BLUE);
break;
case 2:
show_text.setTextColor(Color.YELLOW);
break;
}
}
});
builder.show();
}

// 单选列表对话框,注意监听方法变了
public void openSigleDialog(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请选择字体大小");
builder.setIcon(R.drawable.ic_launcher);
String[] font = { "20sp", "30sp", "40sp" };
// 注意:单选列表对话框监听方法变了,跟前面有点区别
builder.setSingleChoiceItems(font, 0, new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
postion = which;
}
});
// 单选列表它有一个确认按钮,确认按了哪个按钮的事件内容
builder.setPositiveButton("确定", new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
switch (postion) {
case 0:
show_text.setTextSize(20);
break;
case 1:
show_text.setTextSize(30);
break;
case 2:
show_text.setTextSize(40);
break;
}
}
});
builder.show();
}

// 多选列表对话框,注意监听方法变了
public void openMultDialog(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("请选择爱好");
builder.setIcon(R.drawable.ic_launcher);
final String[] hobbies = { "篮球", "游泳", "跑步" };
final boolean[] postions = new boolean[hobbies.length];// 记录选中项的状态
// 注意:多选列表对话框监听方法也变了
builder.setMultiChoiceItems(hobbies, null,
new OnMultiChoiceClickListener() {

@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
postions[which] = isChecked;// 记录的位置,不管有没有选中
}
});
builder.setPositiveButton("确定", new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < hobbies.length; i++) {
if (postions[i]) {// 循环记录的位置
sb.append(hobbies[i] + "  ");
}
}
show_text.setText(sb);
}
});
builder.show();
}

// 带图标的列表对话框,要跟适配器搭配使用,而且监听方法是builder.setAdapter
public void openAdapterList(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("系统设置");
builder.setIcon(R.drawable.ic_launcher);
String[] optionSettings = { "系统设置", "蓝牙设置", "WIFI设置", "日期设置", "声音设置" };
int[] optionImage = { R.drawable.img01, R.drawable.img02,
R.drawable.img03, R.drawable.img04, R.drawable.img05 };
List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
for (int i = 0; i < optionImage.length; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("image", optionImage[i]);
map.put("name", optionSettings[i]);
data.add(map);
}
SimpleAdapter adapter = new SimpleAdapter(this, data,
R.layout.settings, new String[] { "image", "name" }, new int[] {
R.id.setting_image, R.id.setting_name });
// 注意监听方法变了
builder.setAdapter(adapter, new OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent();
switch (which) {
case 0:
intent.setAction(Settings.ACTION_SETTINGS);
break;
case 1:
intent.setAction(Settings.ACTION_BLUETOOTH_SETTINGS);
break;
case 2:
intent.setAction(Settings.ACTION_WIFI_SETTINGS);
break;
case 3:
intent.setAction(Settings.ACTION_DATE_SETTINGS);
break;
case 4:
intent.setAction(Settings.ACTION_SOUND_SETTINGS);
break;
}
startActivity(intent);
}
});
builder.show();
}
}

//
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: