Как мне получить данные из SQLite в адаптер Custome Simple Cursor и отобразить их в списке? - PullRequest
0 голосов
/ 02 марта 2012

Я реализовал приложение для получения данных из локальной мобильной базы данных SQLite и пытаюсь отправить его в класс адаптера Custome Simple Cursor. Я получаю данные из BroadCast Reciever. Он используется для получения самой последней записи из DB. затем я могу получить данные из Sqlite DB и обновить их до UI. Но я не могу передать содержимое БД в CustomeSimpleCursorAdapter. Как я могу передать содержимое БД в CustomeSimpleCursorAdapter?

Я реализовал код следующим образом:

     private BroadcastReceiver myReceiver = new BroadcastReceiver() 
  {
        @Override
        public void onReceive(Context context, Intent intent) {
        msh = new MySqliteHelper(GetMsgsScreen.this);
        msh.openToWrite();
        lst = ((ListView)findViewById(R.id.listView1));
        cursor = msh.queueAll();
        getFromDB = new String[]{MySqliteHelper.USER_NAME,MySqliteHelper.USER_MESSAGE};
        toView = new int[]{R.id.usrName,R.id.msgText};
        cursor.moveToFirst(); 
          lst.setAdapter(new SimpleCursorAdapter(GetMsgsScreen.this, R.layout.test, cursor, getFromDB, toView));            
       updateList();

        }
    };

Аналогично,

Если я использую CustomeSimpleCursorAdapter вместо SimpleCursorAdapter, то как я могу отобразить MySqliteHelper.USER_NAME и MySqliteHelper.USER_MESSAGE содержание в списке? пожалуйста, любое тело, помогите мне.

1 Ответ

1 голос
/ 02 марта 2012

Если вы хотите создать собственный подкласс адаптера CursorAdapter, вы должны переопределить bindView и newView метод.

public class CustomCursorAdapter extends CursorAdapter {
    public CustomCursorAdapter(Context context, Cursor c) {
        super(context, c);
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        TextView username = (TextView)view.findViewById(R.id.username);
        username.setText(cursor.getString(
                cursor.getColumnIndex(MySqliteHelper.USER_NAME)));
        //  Set up other view here
        //  ...
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {
        LayoutInflater inflater = LayoutInflater.from(context);
        View v = inflater.inflate(R.layout.listItem, parent, false);
        bindView(v, context, cursor);
        return v;
    }
}
...