2015-01-29 1 views
0

я имею класс, чтобы получить все MessageThread как:Как заполнить ListView в соответствии с базой данных в андроиде

public List<ChatMessageThread> getAllMessageThread() { 

     List<ChatMessageThread> chatMessageThreads = new ArrayList<ChatMessageThread>(); 
     // Select All Query 
     String selectQuery = "SELECT * FROM " + TABLE_ChatMessageThread; 

     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor c = db.rawQuery(selectQuery, null); 

     // looping through all rows and adding to list 
     if (c.moveToFirst()) { 
      do { 
       ChatMessageThread td = new ChatMessageThread(); 
       td.setChatMessageThreadId(c.getInt((c.getColumnIndex(KEY_ChatMessageThreadId)))); 
       td.setMessageThreadTitle((c.getString(c.getColumnIndex(KEY_MessageThreadTitle)))); 
       td.setMessageThreadURL(c.getString(c.getColumnIndex(KEY_MessageThreadURL))); 
       td.setMessageThreadSnippet(c.getString(c.getColumnIndex(KEY_MessageThreadSnippet))); 

       // Adding contact to list 
       chatMessageThreads.add(td); 
      } while (c.moveToNext()); 
     } 
     return chatMessageThreads; 
    } 

как я могу заполнить этот список в ListView моей ListView в файле макет

+0

сделать этот список источником для вашего адаптера для просмотра списка. Готово – EagleEye

ответ

0

я использую этот метод:

private void populateListView() { 
     ArrayAdapter<ChatMessageThread> adapter = new MyListAdapter(); 
     ListView list = (ListView) findViewById(R.id.lv); 
     list.setAdapter(null); 
     list.setAdapter(adapter); 
    } 

также метод MyListAdapter:

private class MyListAdapter extends ArrayAdapter<ChatMessageThread> { 
     public MyListAdapter() { 
      super(MainActivity.this, R.layout.listitem, ChatMessageThreadObject); 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      // Make sure we have a view to work with (may have been given null) 
      View itemView = convertView; 
      if (itemView == null) { 
       itemView = getLayoutInflater().inflate(R.layout.listitem, 
         parent, false); 
      } 

      // Find the object to work with 
      ChatMessageThread working_object = ChatMessageThreadObject.get(position); 

      // set a textview from the listitem layout 
      TextView startTime = (TextView) itemView 
        .findViewById(R.id.t_v_startTime); 
      startTime.setText(working_object.getID()); 
      return itemView; 
     } 
    } 

p.s. Я отредактировал свои объекты, чтобы обратиться к вашему ответу. я надеюсь, что это поможет вам :)

+0

, пожалуйста, предоставьте ChatMessageThreadObject? –

+0

private ArrayList ChatMessageThreadObject = getAllMessageThread(); – virusivv

+0

Его не работает .... –

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