1.建立项目,在res/values目录下的strings.xml中添加代码
<resources> <string name="app_name">Sample_6_6</string> <string name="menu_settings">Settings</string> <string name="title_activity_main_activity3">MainActivity3</string> <string name="btn">显示多选列表对话框</string> <string name="ok">确定</string> <string name="title">多选列表对话框</string> </resources>
2.在res/values目录下新建一个array.xml文件,添加如下代码
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="msa"> <item >游泳</item> <item>打篮球</item> <item>写Java程序</item> </string-array> </resources>
3.在layout目录下的布局文件改成如下代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent" > <EditText android:id="@+id/EditText01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cursorVisible="false" android:editable="false" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:padding="@dimen/padding_medium"/> <Button android:id="@+id/Button01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/btn" /> </LinearLayout>
4.接下来就开发主程序的代码啦,如下
package com.example.sample_6_6; import android.app.Activity; import android.app.AlertDialog.Builder; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class MainActivity3 extends Activity { final int LIST_DIALOG_MULTIPLE = 1; boolean[] mulFlag = new boolean[] { true, false, true };// 初始化复选情况 String[] items = null;// 选项数组 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); items = getResources().getStringArray(R.array.msa);// 获得xml文件中的字符串数组 Button btn = (Button) findViewById(R.id.Button01); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { showDialog(LIST_DIALOG_MULTIPLE); } }); } protected Dialog onCreateDialog(int id) { Dialog dialog = null; switch (id) { case LIST_DIALOG_MULTIPLE: Builder b = new Builder(this); b.setIcon(android.R.drawable.alert_dark_frame);//android.R是调用系统里的资源 b.setTitle(R.string.title); b.setMultiChoiceItems(R.array.msa, mulFlag, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { String result = "您选择了: "; mulFlag[which] = isChecked;//设置选中标志位 for (int i = 0; i < mulFlag.length; i++) { if (mulFlag[i])// 如果该选项被选中 result = result + items[i] + "、"; } EditText et = (EditText) findViewById(R.id.EditText01); // et.setText(getResources().getStringArray(R.array.msa)[which]); et.setText(result.substring(0, result.length() - 1));// 设置EditText显示的内容 } }); dialog = b.create(); break; default: break; } return dialog; } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }
5.程序运行图如下