cal
cal

Reputation: 470

Android : isSelected not working first time in ListView

I have a ListView, when I check for a row click "isSelected()" always returns false even if it's been previously selected, the second time I check it returns true.. The ListView needs to be clicked twice in order for "isSelected()" to work... I've seen similar issues on SO but none of the proposed solutions work..

Note: I'm using a custom ListAdapter, that where I am listening for the row click, so I cant use setOnItemClickListener on the Listview

row.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(final View v) {

            v.clearFocus();

            if (v.isSelected())
            {

As suggested I added a setOnItemClickListener to the Listview, but now it doesn't detect if selected, it always returns false

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> a, View v, int position,
                                long id) {

            Log.v("myApp", "onItemClick is " + position);

            if (v.isSelected())
            {
                v.setSelected(false);

                Log.v("MyApp", "fiend deselect row " + position);

                v.setBackgroundResource(R.color.default_color);

            } else {
                Log.v("MyApp", "fiend click row " + position);

                v.setSelected(true);

                v.setBackgroundResource(R.color.pressed_color);

            }

        }
    });

Upvotes: 1

Views: 336

Answers (1)

Ngima Sherpa
Ngima Sherpa

Reputation: 1555

Set listView.onItemClicklistener instead of row.setOnClickListener like this:

listView.setOnItemClickListener(new OnItemClickListener() {
                            @Override
                            public void onItemClick(AdapterView<?> a, View v, int position,
                                    long id) {


                                }
                        });

Upvotes: 1

Related Questions