实现使用AlertDialog.Builder创建对话框加载Layout布局,添加两个TextView水平居中,以及四个RadioButton,并且给四个RadioButton添加点击事件,Dialog有取消以及确定按钮
时间: 2024-03-10 15:47:09 浏览: 192
好的,我来给你演示一下如何使用`AlertDialog.Builder`创建对话框,并在其中加载布局,添加`TextView`和`RadioButton`,并给`RadioButton`添加点击事件,最后添加取消和确定按钮。
1. 首先,在你的`Fragment`中,使用`AlertDialog.Builder`创建对话框,并设置对话框的标题:
```
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("标题");
```
2. 然后,使用`LayoutInflater`加载一个布局文件,并将其设置为对话框的视图:
```
View dialogView = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_layout, null);
builder.setView(dialogView);
```
3. 在布局文件中,添加两个`TextView`和四个`RadioButton`,并将它们水平居中:
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="文本1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="文本2"/>
</LinearLayout>
<RadioGroup
android:id="@+id/radio_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_horizontal">
<RadioButton
android:id="@+id/radio_button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选项1"/>
<RadioButton
android:id="@+id/radio_button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选项2"/>
<RadioButton
android:id="@+id/radio_button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选项3"/>
<RadioButton
android:id="@+id/radio_button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选项4"/>
</RadioGroup>
```
4. 在`Fragment`中,给四个`RadioButton`添加点击事件:
```
RadioGroup radioGroup = dialogView.findViewById(R.id.radio_group);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.radio_button1:
// 处理选项1的点击事件
break;
case R.id.radio_button2:
// 处理选项2的点击事件
break;
case R.id.radio_button3:
// 处理选项3的点击事件
break;
case R.id.radio_button4:
// 处理选项4的点击事件
break;
}
}
});
```
5. 最后,在对话框中添加取消和确定按钮,并设置它们的点击事件:
```
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 处理取消按钮的点击事件
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 处理确定按钮的点击事件
}
});
```
6. 最后,显示对话框:
```
AlertDialog dialog = builder.create();
dialog.show();
```
完整的代码如下:
```
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("标题");
View dialogView = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_layout, null);
builder.setView(dialogView);
RadioGroup radioGroup = dialogView.findViewById(R.id.radio_group);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.radio_button1:
// 处理选项1的点击事件
break;
case R.id.radio_button2:
// 处理选项2的点击事件
break;
case R.id.radio_button3:
// 处理选项3的点击事件
break;
case R.id.radio_button4:
// 处理选项4的点击事件
break;
}
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 处理取消按钮的点击事件
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 处理确定按钮的点击事件
}
});
AlertDialog dialog = builder.create();
dialog.show();
```
阅读全文