博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android之复选框对话框
阅读量:6995 次
发布时间:2019-06-27

本文共 3184 字,大约阅读时间需要 10 分钟。

1.建立项目,在res/values目录下的strings.xml中添加代码

Sample_6_6
Settings
MainActivity3
显示多选列表对话框
确定
多选列表对话框

2.在res/values目录下新建一个array.xml文件,添加如下代码

游泳
打篮球
写Java程序

3.在layout目录下的布局文件改成如下代码

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.程序运行图如下

 

转载于:https://www.cnblogs.com/yujiaqiang/archive/2012/09/27/2706329.html

你可能感兴趣的文章