Android——AlertDialog对话框之单选对话框

AlertDialog对话框包含普通、单选、多选和自定义对话框,本文介绍其中的单选对话框。

一、实现效果

 

二、单选对话框简介

 单选对话框的内容区域显示为单选列表。
单选列表是通过AlertDialog.Builder对象 调用setSingleChoiceItems()方法设置的。

setSingleChoiceItems()方法语句格式:
setSingleChoiceItems(CharSequence[] items,int checkedItem,OnClickListener)。
items:表示单选列表中的所有选项数据。
checkedItem:默认选项角标。
Listener:监听接口。

三、activity_main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="通过单选对话框选择后显示字体大小"
        android:textSize="20sp"
        />
    <Button
        android:id="@+id/bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请设置字体大小"
        android:layout_gravity="center"
        />

</LinearLayout>

 四、MainActivity.java文件

1.步骤

定义数组变量textSizeArr,用于存储字体。定义单选列表中默认选择的位置为1。

通过AlertDialog.Builder创建一个普通对话框。

setSingleChoiceItems()方法设置对话框的单选列表,并设置为监听事件,在onclick()方法中得到被点击的序号which,根据序号获取textSizeArr数组中的数据。

setPositiveButton()方法setNegativeButton()方法中分别设置“确定”与“取消”按钮。

 2.代码

import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import org.w3c.dom.Text;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private TextView textView;
    int textSize=1;//表示单选列表中默认选择的位置为1
    private int[] textSizeArr={10,20,25,30,40};//定义数组变量,用于存储字体大小

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.bt).setOnClickListener(this);
        textView=(TextView) findViewById(R.id.tv);
    }

    @Override
    public void onClick(View v) {
        AlertDialog dialog;
        AlertDialog.Builder builder =new AlertDialog.Builder(this)
                .setTitle("设置字体大小")
                .setIcon(R.mipmap.ic_launcher)
                .setSingleChoiceItems(new String[]{"小号", "默认", "中号", "大号", "超大"}, textSize, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        textSize=which;//得到被点击的序号which
                    }
                })
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {//添加“确定”按钮
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        textView.setTextSize(textSizeArr[textSize]);//设置字体大小的语句
                        dialog.dismiss();
                    }
                })
                .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
        dialog=builder.create();
        dialog.show();
    }
}

扫描二维码关注公众号,回复: 15440539 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_72634509/article/details/127850338