常规选择弹出框
需要先声明一个AlertDialog.Builder
builder的 setTitle为设置弹出框标题, setMessage为设置弹出框主体信息, setIcon为设置图标
setPositiveButton 设置正向按钮(显示文字,点击事件)
setNeutralButton 设置中向按钮(显示文字,点击事件)
setNegativeButton 设置负向按钮(显示文字,点击事件)
@Override
public void onClick(View v) {
// Toast.makeText(itemView.getContext(), "成功点击", Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder = new AlertDialog.Builder(itemView.getContext());
builder.setTitle("快说好!!").setMessage("就问你觉得我写的这软件好不好使吧").setIcon(R.drawable.ic_head)
.setPositiveButton("太好使了", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(itemView.getContext(), "诚实的好孩子~", Toast.LENGTH_SHORT).show();
}
}).setNeutralButton("凑合吧", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(itemView.getContext(), "哼~我知道你有点小傲娇", Toast.LENGTH_SHORT).show();
}
}).setNegativeButton("不好", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(itemView.getContext(), "睁眼说瞎话", Toast.LENGTH_SHORT).show();
}
}).show();
}
});
效果图

使用数组设置选择弹出框
参数which可看做数组下标
使用setItems(数组,点击事件);
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// Toast.makeText(itemView.getContext(), "成功长按", Toast.LENGTH_SHORT).show();
String[] array = {"好!","太好了!!!"};
AlertDialog.Builder builder1 = new AlertDialog.Builder(itemView.getContext());
builder1.setTitle("快说好!!").setItems(array, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(itemView.getContext(), array[which], Toast.LENGTH_SHORT).show();
}
}).show();
return true;
}
});
效果图

弹出框设置单选效果
使用setSingleChoiceItems(数组,默认选择下标,点击事件)
// 0 默认选中的数组下标
builder1.setTitle("快说好!!").setSingleChoiceItems(array, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(itemView.getContext(), array[which], Toast.LENGTH_SHORT).show();
dialog.dismiss(); // 选择后消失弹出框
}
}).setCancelable(false).show(); // setCancelable设置不选择的时候点击旁边不消失弹出框
效果图

弹出框设置复选效果
使用setMultiChoiceItems(选项数组,是否选中数组,点击事件)
注意此处点击事件使用new DialogInterface.OnMultiChoiceClickListener()
boolean类型数组设置默认状态是否选中
boolean[] boolean1 = {false,false,true};
builder1.setTitle("快说好!!").setMultiChoiceItems(array, boolean1, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,boolean boolean1) {
Toast.makeText(itemView.getContext(), array[which]+":"+boolean1, Toast.LENGTH_SHORT).show();
}
}).show();

1165

被折叠的 条评论
为什么被折叠?



