отображение изображения флага в виде списка из базы данных sqlite - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть база данных с полем "flagname". То, что я хочу сделать, это отобразить представление списка с соответствующим флагом в представлении изображения, которое соответствует полю базы данных, рядом с текстовым полем. Текстовое поле из базы данных отображается нормально, но у меня возникают проблемы с отображением соответствующего флага рядом с ним. Может кто-нибудь, пожалуйста, дайте мне знать, где я иду не так. Мой код указан ниже:

общедоступные классы расширяют активность {

Cursor cursor;
ListView lv;
ImageView iv;

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.listmain);  
    iv = (ImageView)findViewById(R.id.imgFlag);


    DBAdapter db = new DBAdapter(this);
    db.open();

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

    //Get cursor for list items
    cursor = db.getAllRadioStations();

    //assign fields to columns
    String[] columns = new String[]{DBAdapter.KEY_STATION_NAME.toString()};
    int[] to = new int[]{R.id.txtFlag};

    startManagingCursor(cursor);

    SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.flagchoice, cursor, columns, to);

    lv.setAdapter(adapter);
    lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);



}

1 Ответ

0 голосов
/ 29 декабря 2011

Что вам нужно сделать, это переопределить Adapter.setViewBinder (). Попробуйте это:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.flagchoice, cursor, columns, to);

adapter.setViewBinder(new ViewBinder() {

public boolean setViewValue(View aView, Cursor aCursor, int aColumnIndex) {

String country=aCursor.getString(aColumnIndex);

int id = getResources().getIdentifier("yourpackagename:drawable/" + country , null, null);

iv = (ImageView)findViewById(R.id.imgFlag);

iv.setImageDrawable(getResources().getDrawable(id));

TextView tv=(TextView) aView;
tv.setText(aCursor.getString(aColumnIndex));
return true;

}
});
lv.setAdapter(adapter);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...