Отображение значка в базе данных с использованием ViewBinder

Я успешно создал таблицу, используя SQlite в андроид. В базе данных есть колонка для секса (мужской / женский). То, что я хотел бы сделать, это проверить тип пола и отобразить мужской / женский значок в зависимости от типа. я использовал setViewBinder() который проходит индекс столбца (какой именно столбец я не знаю), но я считаю, что мы можем использовать это для проверки столбца пола. Есть лучший способ сделать это?

        ListView lv=(ListView)findViewById(R.id.mylist);


         dbh = new DatabaseHelper(this);

           c = dbh.getReadableDatabase().rawQuery("SELECT _id, " + 
                   DatabaseHelper.NAME + 
           ", " + DatabaseHelper.LASTNAME + 
           ", " + DatabaseHelper.ans2 + ", " + DatabaseHelper.SEX + 
           " FROM " +
           DatabaseHelper.TABLE_NAME, null); // initializing 


  String[] dataFrom ={DatabaseHelper.NAME, DatabaseHelper.LASTNAME, DatabaseHelper.ans2, DatabaseHelper.SEX};
  int[] dataTo = {R.id.name, R.id.value1, R.id.value2, R.id.icon};

  SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
               R.layout.row, c, dataFrom, dataTo);
  adapter.setViewBinder(new ViewBinder(){


       public boolean setViewValue(View view, Cursor cursor,
               int columnIndex) {
           if (view.getId() == R.id.icon) {
               int sex = cursor.getInt(columnIndex);
               String s = String.valueOf(sex);
               if (s == "male") {
                   ((ImageView) view).setImageResource(R.drawable.male);
               } else if (s == "female"){
                   ((ImageView) view).setImageResource(R.drawable.female);
               }

               return true;    
           } else {
               return false;
           }

       }

   });
lv.setAdapter(adapter);

2 ответа

Решение

Метод bindView позволяет легко устанавливать / проверять ваши данные, потому что вы получаете:

  • ваш курсор расположен в фактической позиции
  • вид, в котором вы можете разместить свои данные
 if (s == "male")

Изменить это для

if (s.equals("male"))
Другие вопросы по тегам