请重新回答,答案有问题
时间: 2024-04-10 08:33:22 浏览: 59
抱歉给你带来了困扰,以下是一个在 Android 中设计弹窗并实现单项选择的示例代码:
```java
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.widget.Toast;
import java.util.HashMap;
public class CustomDialog {
private HashMap<String, String[]> jg;
private HashMap<String, String> selectedValues;
public CustomDialog(Context context, HashMap<String, String[]> jg) {
this.jg = jg;
selectedValues = new HashMap<>();
// 创建弹窗
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("选择项");
// 构建选择项数组
final String[] keys = jg.keySet().toArray(new String[0]);
// 设置单选列表
builder.setSingleChoiceItems(keys, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String selectedKey = keys[i];
String[] values = jg.get(selectedKey);
showSubDialog(context, selectedKey, values);
}
});
// 设置取消按钮
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// 取消选择时的逻辑处理
Toast.makeText(context, "取消选择", Toast.LENGTH_SHORT).show();
}
});
// 创建并显示弹窗
AlertDialog dialog = builder.create();
dialog.show();
}
private void showSubDialog(Context context, final String key, final String[] values) {
AlertDialog.Builder subBuilder = new AlertDialog.Builder(context);
subBuilder.setTitle(key);
subBuilder.setSingleChoiceItems(values, 0, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String selectedValue = values[i];
selectedValues.put(key, selectedValue);
}
});
subBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// 选择完成时的逻辑处理
Toast.makeText(context, "选择完成", Toast.LENGTH_SHORT).show();
// 可以在这里将选择结果保存到 selectedValues 中
}
});
subBuilder.create().show();
}
}
```
使用示例:
```java
HashMap<String, String[]> jg = new HashMap<>();
jg.put("key1", new String[]{"value1", "value2", "value3"});
jg.put("key2", new String[]{"valueA", "valueB", "valueC"});
CustomDialog customDialog = new CustomDialog(this, jg);
```
这段代码会创建一个弹窗,其中每个键都会按顺序逐个显示在单选列表中。选择的结果将保存在 `selectedValues` 哈希映射中,键对应于参数 `jg` 的键。你可以根据自己的需求对代码进行修改和扩展。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)