个人归结为 alertDialog 具备四种使用方式
① 点击按钮 弹出 确定 取消,选项
② 使用adapter 以ListView 形式展现进行选择
③ listView 形式展现,实现单选
④ listView 形式展现,实现多选
注意 多选的监听器 OnMultiChoiceClickListener()
// 第一种方式:
1 构建AlertDialog 对象
2 调用 show()方法 与pupuMenu的show 方法类似
package com.example.gp11_day12_dialog1;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
public class MainActivity extends Activity {
private AlertDialog exitDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化对话框
initDialog();
}
private void initDialog() {
//得到对话框构建器对象
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//使用对话框构建器对象设置对话框的属性
builder.setTitle("提示")
.setMessage("你真想退出啊?")
.setIcon(R.drawable.ic_launcher)
.setCancelable(false)//当点击对话框周围时是否退出该对话框
.setPositiveButton("真想",new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//结束当前的activity
finish();
}
})
.setNegativeButton("不想", null);
//生成对话框对象
exitDialog = builder.create();
}
//当点击按钮时退出当前的activity
public void exits(View v)
{
exitDialog.show();
}
//当用户按下某个键时的处理方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK)//判断用户按下的是否是回退键
exitDialog.show();
return super.onKeyDown(keyCode, event);
}
}
package com.example.gp11_day12_dialog2;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView textView;
//对话框和适配器结合使用
private AlertDialog colorDialog;
private ArrayAdapter<String> adapter;
//把对话框设置为单选模式
private AlertDialog fontDialog;
private float[] fontSize={20f,25f,30f,35f,40f};
//把对话框设置为多选模式
private AlertDialog aihaoDialog;
private String[] aihao = {"eat","sleep","play","study"};
private boolean[] select={true,true,true,false};//设置每个选项默认是否被选中
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
//初始化对话框
initDialog();
}
private void initDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
adapter.add("红色");
adapter.add("绿色");
adapter.add("蓝色");
builder.setTitle("颜色选择对话框")
.setIcon(R.drawable.ic_launcher)
.setAdapter(adapter, new OnClickListener() {
//参数which接收的是被点击的数据项在适配器中的位置
@Override
public void onClick(DialogInterface dialog, int which) {
//得到用户选择的数据项
String data = adapter.getItem(which);
textView.setText(data);
}
});
colorDialog = builder.create();
//单选模式的对话框
fontDialog = new AlertDialog.Builder(this)
.setTitle("字体大小选择对话框 ")
.setIcon(R.drawable.ic_launcher)
//第一个参数是显示的数据项的资源id
//第二个参数是默认被选中的选项
.setSingleChoiceItems(R.array.fonts, 2, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String[] datas = getResources().getStringArray(R.array.fonts);
String item = datas[which];
setTitle(item);
//把TextView的字体设置为当前用户选择的大小
textView.setTextSize(fontSize[which]);
//关闭对话框
dialog.dismiss();
}
}).create();
//多选模式的对话框
aihaoDialog = new AlertDialog.Builder(this)
.setTitle("爱好选择对话框")
.setIcon(R.drawable.ic_launcher)
.setMultiChoiceItems(aihao, select, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
//which接收的是用户选择的数据项在数组中的下标
//isChecked接收的是用户选择的数据项是否被选中的布尔值
select[which]=isChecked;//记录用户的选择结果
}
})
.setPositiveButton("确定",new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 当用户选择完成时,把被选中的数据项显示到textView中
textView.setText("");
for(int i=0;i<select.length;i++)
{
if(select[i])
textView.append(aihao[i]+" ");
}
}
})
.create();
}
//点击按钮时弹出选择颜色的对话框
public void selectColor(View v)
{
colorDialog.show();
}
//点击按钮时弹出选择字体的对话框
public void selectFont(View v)
{
fontDialog.show();
}
//点击按钮时弹出选择爱好的对话框
public void selectHobby(View v)
{
aihaoDialog.show();
}
}