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 查看本文章