最基础对话框
创建对话框一般步骤:
第一步:创建AlertDialog.Builder对象
第二步:设置图标 标题 内容 按钮等
第三步:调用create()
第四部:调用show()
在ListView长按点击事件中编写一个:
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(this, "长按了"+position,Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder=new AlertDialog.Builder( this );
builder.setIcon( R.drawable.apple );
builder.setTitle( "消息提示" );
builder.setMessage( "这是一个简单的对话框" );
builder.setPositiveButton( "确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText( MainActivity.this, "点击了确定", Toast.LENGTH_SHORT ).show();
}
} );
builder.create().show();
return true;//消化,false不消化,也就是会执行点击
}
确认对话框
实现确认对话框:
不调用setMessage()设置内容
调用setNegativeButton()方法添加取消方法
在ListView长按点击事件中编写一个:
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(this, "长按了"+position,Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder=new AlertDialog.Builder( this );
builder.setIcon( R.drawable.apple );//图标
builder.setTitle( "消息提示" );//标题
builder.setNegativeButton( "取消",null );//null代表不作任何操作,只是消失对话框
builder.setPositiveButton( "确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();//退出活动
//Toast.makeText( MainActivity.this, "点击了确定", Toast.LENGTH_SHORT ).show();
}
} );
builder.create().show();
return true;//消化,false不消化,也就是会执行点击
}
列表对话框
实现步骤:
1、准备一个数组资源
2、调用setItems()设置列表项
在ListView长按点击事件中编写一个:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(this, "点击了"+position,Toast.LENGTH_SHORT).show();
}
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
//Toast.makeText(this, "长按了"+position,Toast.LENGTH_SHORT).show();
final String[] str={"1","2","3","4"};
AlertDialog.Builder builder=new AlertDialog.Builder( this );
builder.setIcon( R.drawable.apple );//图标
builder.setTitle( "消息提示" );//标题
builder.setItems( str, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//编写点击事件的方法
Toast.makeText( MainActivity.this, "用户选择了"+str[which], Toast.LENGTH_SHORT ).show();
}
} );
builder.create().show();
return true;//消化,false不消化,也就是会执行点击
}
单选对话框
实现步骤:
1、准备一个数组资源
2、调用setSingleChoiceItems()设置单选列表项
在ListView长按点击事件中编写一个:
int selectId=0;
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
//Toast.makeText(this, "长按了"+position,Toast.LENGTH_SHORT).show();
final String[] str={"1星","2星","3星","4星","5星"};
AlertDialog.Builder builder=new AlertDialog.Builder( this );
builder.setIcon( R.drawable.apple );//图标
builder.setTitle( "大侠,给个五星好评吧" );//标题
builder.setSingleChoiceItems( str, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
selectId=which;
Toast.makeText( MainActivity.this, "你选择了"+str[which], Toast.LENGTH_SHORT ).show();
}
} );
builder.setPositiveButton( "确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText( MainActivity.this, "你的决定是"+str[selectId], Toast.LENGTH_SHORT ).show();
}
} );
builder.create().show();
return true;//消化,false不消化,也就是会执行点击
}
复选对话框
实现步骤:
1、准备一个数组资源
2、调用setMultiChoiceItems()设置多选列表项
在ListView长按点击事件中编写一个:
ArrayList<Integer> choice=new ArrayList<Integer>();
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
//Toast.makeText(this, "长按了"+position,Toast.LENGTH_SHORT).show();
final String[] str={"足球","篮球","乒乓球","羽毛球","棒球"};
AlertDialog.Builder builder=new AlertDialog.Builder( this );
builder.setIcon( R.drawable.apple );//图标
builder.setTitle( "你喜欢下列那些运动" );//标题
builder.setMultiChoiceItems( str, new boolean[]{false, false, false, false, false}, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if(isChecked)
choice.add(which);
else
choice.remove(which);
Toast.makeText( MainActivity.this, "你选了"+str[which]+" "+"你的选择有"+choice.toString()+"项", Toast.LENGTH_SHORT ).show();
}
} );
builder.setPositiveButton( "确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText( MainActivity.this, "你的决定是"+choice.toString(), Toast.LENGTH_SHORT ).show();
}
} );
builder.create().show();
return true;//消化,false不消化,也就是会执行点击
}