2012-03-02 3 views
-1

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

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

 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 содержание в список? пожалуйста, любой орган мне поможет.

+0

-1 без определения CustomeSimpleCursorAdapter мы можем только догадываться, как это сделать ... моя первая догадка .. вы не предоставили надлежащего конструктор для CustomeSimpleCursorAdapter ... – Selvin

+0

эй увидеть кто-то дал правильное answer.y ты упустил? –

ответ

1

Если вы хотите создать собственный подкласс адаптера 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; 
    } 
} 
+0

можно ли получить изображения, подобные загрузке изображений LazyLoad? –