android single choice list selection problem?

后端 未结 2 1002
北恋
北恋 2021-02-09 18:04

friends,

i am using following code to display list with radio buttons now i want to select specific radio button of list by default so using setSelection property which

2条回答
  •  余生分开走
    2021-02-09 18:43

    I might be completely off, but I think setSelection doesn't necessarely checks your item (as in checkbox, or radio), it navigates to it though.

    As a workaround (maybe there is a more elegant solution) you can extend ArrayAdapter and set checked manually in a getView() method.

    Add something like this to your class:

    private static class MArrayAdapter extends ArrayAdapter {
        public Adapter(final Context context, final String[] objects) {
            super(context, android.R.layout.simple_list_item_single_choice, objects);
        }
    
        @Override
        public View getView(final int position, final View convertView, final ViewGroup parent) {
            final CheckedTextView view = (CheckedTextView) super.getView(position, convertView, parent);
            view.setChecked(position == 2);
            return view;
        }
    
    }
    

    And change your way of getting an adapter to new MArrayAdapter(this, items);

    P.S. On my previous comment, my mistake, you better call setChoiceMode (it's just in my app, I call notifyDataSetChanged, so I don't really need it). I think your'r up to some weird behaviour without choice mode.

提交回复
热议问题