Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: How to make RadioGroup work correctly in a ListView?

I have a ListView, which has a TextView and a RadioGroup with 4 RadioButtons as Children in each row. Now i can select a RadioButton in each row. But if i scroll the ListView, my Selection is gone or it does not show correctly. For example, i choose the RadioButton A in the first row, if i scroll through the ListView and then go back to the first row again, either none of the RadioButtons in the RadioGroup is checked or RadioButton C is checked instead of A. How can i fix this Problem? I have tried 7 days already, but still i find no solution. Can anybody help me? I'll be very appriciate of that.

like image 429
TianDong Avatar asked Feb 26 '23 22:02

TianDong


1 Answers

When getView() (or bindView() if you are using a CursorAdapter) is called on your adapter, you need to set the state of the RadioGroup. Android recycles rows and is not going to track those RadioGroup states for you.

See here for a sample project that has a RatingBar in a row for the general technique. This is also covered in this free excerpt from one my books.

like image 115
CommonsWare Avatar answered Mar 06 '23 21:03

CommonsWare