AlertDialog.Builder builder = new AlertDialog.Builder(this);
final String[] items = {"手動輸入", "攝像頭輸入"};
int checkedItem = 0; // 默認選中索引,-1 表示無
builder.setTitle("選擇輸入方式")
.setSingleChoiceItems(items, checkedItem, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// which 即為用戶點選的項目索引 (0 或 1)
checkedItem = which; // 記錄選擇
}
})
.setPositiveButton("確認", (dialog, which) -> {
String selected = items[checkedItem];
Toast.makeText(MainActivity.this,
"選擇的輸入方式:" + selected, Toast.LENGTH_SHORT).show();
// 這裡處理業務邏輯
})
.setNegativeButton("取消", null)
.show();
which 參數:單選列表項目的索引(0-based),非按鈕 ID。setPositiveButton 的回調中讀取已保存的索引,取對應文本。若需圖標、複雜佈局,改用 setAdapter() 配合 ListView 或 RecyclerView,但單選邏輯需自行維護(`setChoiceMode(ListView.CHOICE_MODE_SINGLE)`)。
DialogFragment 托管生命周期。