2014-09-05 1 views
-4
@SuppressWarnings("deprecation") 
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(
      MainActivity.this, R.layout.user, cursor, from, to) 

    { 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) 
     { 
      cursor.moveToPosition(position); 
      String s = cursor.getString(cursor.getColumnIndex("USER_SEX")); 
      final View row = super.getView(position, convertView, parent); 

       LayoutInflater inflater = (LayoutInflater) getApplicationContext() 
         .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

       View sexxx = inflater.inflate(R.layout.user, null); 
       sexlogo = (ImageView) sexxx.findViewById(R.id.sex); 

      if (s.equalsIgnoreCase("Male")) 
       sexlogo.setImageResource(R.drawable.male); 

      else 
       sexlogo.setImageResource(R.drawable.female); 
      return row; 
     } 
    }; 

новичок в Android, приложение добавляет пользователю SQLite databse извлекает все пользователи, найденные в базе данных в ListView с использованием cursor.изображение не устанавливая в ImageView внутри ListView с курсором

Я хочу проверить секс пользователя, а затем установить его логотип после извлечения его данных из базы данных и до добавления его в listView.

Я отредактировал свой вопрос и добавил код выше, приложение не сработало, к тому же изображения не отображаются.

любая помощь, пожалуйста,

+0

Если ты собираешься фильтр пола и изменить свой имидж на основе его пол вы должны использовать пользовательские адаптеры не является SimpleCursorAdapter – Cjames

+0

@Cjames я есть отредактировал вопрос, пожалуйста, повторите его. – user3476925

+0

избегайте использования позиции listview в качестве ссылки курсора, используемого только вашим db Id – Cjames

ответ

0

это правильный ответ, просто удалите LayoutInflater, так как super уже раздувает его.

надувания layout вернет новый root представляющий xml

{ 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 

      cursor.moveToPosition(position); 
      String s = cursor.getString(cursor.getColumnIndex("USER_SEX")); 
      final View row = super.getView(position, convertView, parent); 

      sexlogo = (ImageView) row.findViewById(R.id.sex); 

      if (s.equals("Male")) 
       sexlogo.setImageResource(R.drawable.male); 

      else 
       sexlogo.setImageResource(R.drawable.female); 

      return row; 

     } 
    }; 
1

getView функция должна вернуть вид, который будет отображаться.

Этот код возвращает row, который является видом, созданным суперклассом. Пользовательский образ находится в режиме sexxx, который не используется.

+0

Да, это правильно, я ответил на вопрос правильным кодом – user3476925

 Смежные вопросы

  • Нет связанных вопросов^_^