几个常用的方法:
1.setTitle()
设置对话框显示的标题。
2.setIcon()
设置对话框的图标,值得注意的是,如果没有使用setTitle()方法,setIcon()不会生效。
3.setMessage()
设置对话框显示内容。
4.setPositiveButton()、setNegativeButton()、setNeutralButton()
设置对话框的按钮。
5.setCancelable()
点击对话框以外,对话框不会消失,按返回键对话框也不会消失。
提示对话框
演示实例:
MainActivity.java
public class MainActivity extends Activity {
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("这是一个提示框");
builder.setIcon(R.drawable.icon);
builder.setTitle("提示");
builder.setPositiveButton("Positive",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
}
});
builder.setNegativeButton("Negative", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
}
});
builder.setNeutralButton("Neutral", new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
// TODO Auto-generated method stub
}
});
builder.show();
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="${relativePackage}.${activityClass}" >
<Button
android:id="@+id/but"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击"
android:onClick="click"/>
</LinearLayout>
列表对话框
演示实例:
MainActivity.java
public class MainActivity extends Activity {
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//builder.setMessage("我是提示对话框"); 设置setMessage后,setItems失效
builder.setIcon(R.drawable.icon);
builder.setTitle("提示");
builder.setItems(new String[] { "one", "two", "three" },
new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int index) {
String str = null;
switch (index) {
case 0:
str = "one";
break;
case 1:
str = "two";
break;
case 2:
str = "three";
break;
}
Toast.makeText(MainActivity.this, str, Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="${relativePackage}.${activityClass}" >
<Button
android:id="@+id/but"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击"
android:onClick="click"/>
</LinearLayout>
单选列表对话框
演示实例:
MainActivity.java
public class MainActivity extends Activity {
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.icon);
builder.setTitle("提示");
builder.setSingleChoiceItems(new String[] { "one", "two", "three" }, 0,
new OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int index) {
String str = null;
switch (index) {
case 0:
str = "one";
break;
case 1:
str = "two";
break;
case 2:
str = "three";
break;
}
Toast.makeText(MainActivity.this, str,
Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("确认", null);
builder.show();
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="${relativePackage}.${activityClass}" >
<Button
android:id="@+id/but"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击"
android:onClick="click"/>
</LinearLayout>
复选列表对话框
演示实例:
MainActivity.java
public class MainActivity extends Activity {
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setIcon(R.drawable.icon);
builder.setTitle("提示");
final boolean[] items = new boolean[] { false, false, false };
builder.setMultiChoiceItems(new String[] { "one", "two", "three" },
items, new OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1,
boolean isCheaked) {
}
});
builder.setPositiveButton("确认", null);
builder.show();
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="${relativePackage}.${activityClass}" >
<Button
android:id="@+id/but"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击"
android:onClick="click"/>
</LinearLayout>
自定义对话框
MainActivity.java
public class MainActivity extends Activity {
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("提示");
builder.setIcon(R.drawable.icon);
ImageView imageView = new ImageView(MainActivity.this);
imageView.setImageResource(R.drawable.close);
//获取布局文件
View myView = this.getLayoutInflater().inflate(R.layout.form, null);
builder.setView(myView);
ListView listView = (ListView) myView.findViewById(R.id.lv);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
MainActivity.this, android.R.layout.simple_list_item_1,
new String[] { "1", "2", "3" });
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int positon, long arg3) {
Toast.makeText(MainActivity.this,""+ positon, Toast.LENGTH_SHORT)
.show();
}
});
builder.setPositiveButton("确认", null);
builder.show();
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="${relativePackage}.${activityClass}">
<Button
android:id="@+id/but"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击"
android:onClick="click"/>
</LinearLayout>
form.xml(对话框显示的布局内容)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/lv"
android:layout_width="fill_parent"
android:layout_height="fill_parent"></ListView>
</LinearLayout>