android开发之AlertDialog

来源:互联网 发布:java set contains 编辑:程序博客网 时间:2024/06/05 04:20

几个常用的方法:

1.setTitle()

设置对话框显示的标题。

2.setIcon()

设置对话框的图标,值得注意的是,如果没有使用setTitle()方法,setIcon()不会生效。

3.setMessage()

设置对话框显示内容。

4.setPositiveButton()、setNegativeButton()、setNeutralButton()

设置对话框的按钮。

5.setCancelable()

点击对话框以外,对话框不会消失,按返回键对话框也不会消失。


提示对话框


演示实例:

MainActivity.java

public class MainActivity extends Activity {Button button;@Overridepublic 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() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {}});builder.setNegativeButton("Negative", new OnClickListener() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {// TODO Auto-generated method stub}});builder.setNeutralButton("Neutral", new OnClickListener() {@Overridepublic 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;@Overridepublic 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() {@Overridepublic 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;@Overridepublic 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() {@Overridepublic 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;@Overridepublic 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() {@Overridepublic 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;@Overridepublic 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() {@Overridepublic 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>


0 0