Android中的ListView警告对话框中设置默认选择的项目(Set default selec

2019-06-27 13:23发布

我已创建了一个自定义对话框ListView该机型Spinner显示,并且最初它的价值“选择性别”开始了。

当对话框打开,它会提示选择(就像一个微调)。 如果选择被再次选择,它显示了相同的选项,但并不说明该选项已经被选中。

例:
默认值:“选择性别”
对话没有选择打开
用户选择:“男性”
用户重新打开对话......
对话没有选择打开

我想“男”选择它有,因为这是他们最后的选择

这里是我到目前为止的代码:

genderItems = getResources().getStringArray(R.array.gender_array);
genderAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, genderItems);

genderDrop.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_DOWN) {
                Builder genderBuilder = new AlertDialog.Builder(Register.this)
                    .setTitle(R.string.gender_prompt)
                    .setAdapter(genderAdapter, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        inputGender.setText(genderItems[which]);
                        dialog.dismiss();
                    }
                });
                AlertDialog genderAlert = genderBuilder.create();
                genderAlert.show();
                genderAlert.getListView().setSelection(0);
            }
            return false;
        }
});

genderAlert.getListView().setSelection(0) 不设置选择为“男” 的缺省
genderAlert.getListView().setSelection(1) 不设置选择为“女性” 的默认

Answer 1:

弄清楚了:

我从切换.setAdapter.setSingleChoiceItems它可以对默认选择的参数。 然后,所有我所要做的就是创建一个在不知不觉中我点击了一个选项,时间设置一个全局变量。 全局变量的初始设置为-1,所以没有选择选项,然后当我点击的东西它被设置的位置和创建对话框下一次的选择反映了我的前一个选择。 见下文:

Integer selection = -1;

genderItems = getResources().getStringArray(R.array.gender_array);
genderAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, genderItems);

genderDrop.setOnTouchListener(new View.OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_DOWN) {
                Builder genderBuilder = new AlertDialog.Builder(Register.this)
                    .setTitle(R.string.gender_prompt)
                    .setSingleChoiceItems(genderAdapter, selection, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            inputGender.setText(genderItems[which]);
                            selection = which;
                            dialog.cancel();
                        }
                    });
                AlertDialog genderAlert = genderBuilder.create();
                genderAlert.show();
            }
            return false;
        }
});


文章来源: Set default selected item of ListView Alert Dialog in Android