Adroid 之 列表对话框(带单选按钮)
程序员文章站
2022-05-16 23:34:10
...
列表对话框:
种类:
1、普通对话框 用于提示用户;
2、自定义对话框 用于获取用户输入的数据;
3、列表对话框(带单选按钮) 用于用户获取单选的信息;
4、列表对话框(带复选按钮) 用户用户获取多选信息;
详述:
列表对话框(带单选按钮的):该对话框的使用不需要使用到xml布局,需要在
程序中直接的完成;
案例:实现点击一个按钮弹出一个对话框(带单选按钮的),选择自己的专业,并通
一个组件进行显示用户选择的信息;
需要使用知识点:
使用数组资源:
定义:
<!-- 使用数组资源初始化对话框中的数据 -->
<string-array name="arr_professional"> <item>android</item> <item>.net</item> <item>java</item> <item>c/c++</item> </string-array>
程序使用:String[] arr = getResources().getStringArray(int id);
java代码如下:
package com.example.notebook_dialog_two;
import android.app.Activity; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; /* 对话框的测试 */ public class MainActivity extends Activity { /* 声明组件对象 */ private TextView tv_showinfo; private Button radio_dialog_btn; private String temp_professional = null; /* 声明一个Builder对象 */ private Builder builder = null; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* 通过findViewById();方法获取组件的对象 */ tv_showinfo = (TextView) findViewById(R.id.showInfo); radio_dialog_btn = (Button) findViewById(R.id.testRadioBtn); /* 实例化Builder对象 */ builder = new Builder(this); /* 给radio_dialog_btn设置点击事件,实行监听 */ radio_dialog_btn.setOnClickListener(text_radio_dialog_listener); } /* 测试按钮的点击事件 *//* 该事件的目的:弹出一个带有单选按钮的对话框 */ OnClickListener text_radio_dialog_listener = new OnClickListener() { public void onClick(View v) { /* 设置对话框的标题 */ builder.setTitle(getResources().getString(R.string.professional)); /* 设置对话框的类型(单选按钮对话框) */ /* 参1:列表中的数据(可使用数组资源); 参2:单选列表中默认的选项;参3:点击事件对象 */ /* 引用数组资源 :getResources().getStringArray(R.array.arr_professional)*/ builder.setSingleChoiceItems(getResources().getStringArray(R.array.arr_professional), 0, new DialogInterface.OnClickListener() { /* 该事件为:点击列表中的单选按钮时执行的操作 */ public void onClick(DialogInterface dialog, int which) { /* 案例:对该点击事件保存该按钮对应的文本信息 */ temp_professional = getResources().getStringArray(R.array.arr_professional)[which]; Toast.makeText(MainActivity.this, "您选择的专业是:"+temp_professional, 2000).show(); } }); /* 添加OK按钮,并编写事件,单击OK后将获得到的专业信息显示到TextView控件上 */ builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { /* 将专业信息显示到TextView控件上 */ tv_showinfo.setText(temp_professional); } }); /* 创建对话框并进行显示 */ builder.create().show(); } }; /*-----------------------------------------------------------------------------------*/ }
下一篇: Android 之 在模拟器上安装APK