- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个警告对话框窗口,并使用下面的代码将列表中的选项设置为默认值。我在 Stackoverflow 中找不到任何合适的解决方案,所以添加了问题
CustomDialog 类将 Dialog 返回到我的 Activity
public class CustomDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
...
AlertDialog.Builder b = new AlertDialog.Builder();
b.setSingleChoiceItems(Language.names, 5, new OnClickListener() {
....
}
AlertDialog dialog = b.create();
return dialog;
}
Activity 中:
FragmentManager manager = getFragmentManager();
CustomDialog alert = new CustomDialog();
// Creating a bundle object to store the selected item's index
Bundle b = new Bundle();
// Storing the selected item's index in the bundle object : Get current language
// code and set the position
b.putInt("position", 5); // sending the 5
// Setting the bundle object to the dialog fragment object
alert.setArguments(b);
// Creating the dialog fragment object, which will in turn open the alert dialog window
alert.show(manager, "alert_dialog_radio");
现在它显示正确的特定位置,但我遇到的问题是它滚动位置并将该位置保持在顶部。
有没有一种方法可以将列表设置为从位置 0 开始显示,但所选项目是 5。所以想法是传递 5 并显示 5 已选中,但它应该从 0 开始显示。
最佳答案
不是在 setSingleChoiceItems()
调用中传递所选项目的索引,而是传递 -1
以指示未选中任何项目,然后手动选择项目您想要在 AlertDialog
显示之后。
public class CustomDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder b = new AlertDialog.Builder(...);
...
// We can just pass -1 here, since we'll be
// setting the selected item later anyway
b.setSingleChoiceItems(Language.names, -1, new OnClickListener() {
....
}
);
AlertDialog dialog = b.create();
return dialog;
}
@Override
public void onStart() {
super.onStart();
// Grab the position from the arguments,
// and set that item as checked
final int position = getArguments().getInt("position");
final AlertDialog dialog = (AlertDialog) getDialog();
dialog.getListView().setItemChecked(position, true);
}
}
关于android - 我有一个警告对话框并使用 setSingleChoiceItems 设置所选项目,但想从顶部显示列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39091365/
我想在自定义对话框中实现 setSingleChoiceItems 但无法做到。我希望当我按下按钮时,会弹出一个带有 setSingleChoiceItems 的自定义警报框,然后它将转到另一个 Ac
我想创建一个自定义单元格,删除单元格右侧的“按钮”。 对于 AlertDialog,来自 link ,我从 xml 中膨胀了单元格,但它只出现在 setSingleChoiceItems 的 list
大家好,祝大家新年快乐! 我的应用程序遇到了奇怪的问题,我似乎无法修复。这应该是一个逻辑错误,但我无法以某种方式捕获它。 这是我的代码 public String[] str={"Disabled",
我使用 AlertDialog.Builder 创建了一个 AlertDialog,使用 setSingleChoiceItems 将 ListAdapter 设置为派生自 CursorAdapter
我有一个简单的 AlertDialog,其中包含两个元素的 setSingleChoiceItems 列表,效果很好。 final CharSequence[] blackwhite = {"Whit
我有一个警告对话框窗口,并使用下面的代码将列表中的选项设置为默认值。我在 Stackoverflow 中找不到任何合适的解决方案,所以添加了问题 CustomDialog 类将 Dialog 返回到我
我使用以下方法设置名为 mMap 的 GoogleMap 对象的 mapType。 private void setMapType() { final CharSequence[] MAP_T
我正在创建一个 AlertDialog,它将显示单选按钮列表以供选择。它按我的需要工作,除了在创建时,单选按钮显示在项目文本的左侧,我希望它们显示在对话框的最右侧 这是我得到的结果(没有足够的声誉来嵌
在过去的几天里,我阅读了很多关于在 Android 中自定义 AlertDialogs 的问题、答案和解决方案。尽管如此,他们都没有完全帮助我。 所以我的问题是: 通过 setSingleChoice
我有一个名为Grade的自定义模型ArrayList。该模型包含返回成绩名称的getName()方法。 我的要求是 使用此 ArrayList 的 Grade 模型的 getName() 方法,通过传
我正在使用 AlertDialog 显示数据库中项目的单选列表。我使用 AlertDialog.Builder 来构建它,但我不知道在这种情况下应该如何使用 setSingleChoiceItems
当我将 AlertDialog.Builder 的 setSingleChoiceItems 与列表适配器一起使用时,单选按钮不显示。如果我使用 Charsequence[] 数组,则会显示单选按钮。
我是一名优秀的程序员,十分优秀!