2012-10-31 96 views
-3
public List<Contact> getAllContacts() { 
     List<Contact> contactList = new ArrayList<Contact>(); 
     // Select All Query 
     String selectQuery = "SELECT * FROM " + TABLE_CONTACTS; 

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

     // looping through all rows and adding to list 
     if (cursor.moveToFirst()) { 
      do { 
       Contact contact = new Contact(); 
       contact.setID(Integer.parseInt(cursor.getString(0))); 
       contact.setPerkara(cursor.getString(1)); 
       contact.setTarikhKejadian(cursor.getString(2)); 
       contact.setMasaMula(cursor.getString(3)); 
       contact.setMasaAkhir(cursor.getString(4)); 
       // Adding contact to list 
       contactList.add(contact); 
      } while (cursor.moveToNext()); 
     } 

     // return contact list 
     return contactList; 
    } 

这是我用来调用SQLite的数据。数据在那里。但我不知道如何调用它并将数据放入列表视图中。android查看数据库中的数据到列表视图

我在我的java程序中使用List<Contact> contacts = db.getAllContacts();,然后我坚持这个例子我只显示如何看到日志中的数据。

我应该用什么方法调用数据库中的数据并在列表视图中查看它?

+0

你必须使用适配器将数据与列表视图绑定。可以是自定义适配器,也可以是SimpleAdapter等某些Android类。 http://developer.android.com/reference/android/widget/SimpleAdapter.html –

+1

按照一些教程,这不是很难http://mobilecoder.wordpress.com/2010/02/11/understanding-simplecursoradapter-parameters/和http://www.thepcwizard.in/2012/09/android-creating-custom-listview-for.html – ThePCWizard

+0

listTarikh =(ListView)this.findViewById(R.id.listTarikh); 列表 contacts = db.getAllContacts(); String [] from = new String [] {DatabaseHandler.KEY_ID,DatabaseHandler.KEY_PH_NO,DatabaseHandler.KEY_NAME,DatabaseHandler.KEY_MASAMULA,DatabaseHandler.KEY_MASAAKHIR}; int [] target = new int [] {R.id.listTarikh}; ListAdapter adb = new SimpleCursorAdapter(this,R.layout.senarai,contacts,from,target); listTarikh.setAdapter(adb); 它给简单光标适配器上的错误.. – chyreel

回答

0

如上所述,您必须使用适配器我会创建自己的并将其添加到ListView。这大致是你会怎么做,代码有点粗糙类型它straigh到文本编辑器中的位置:

public class ContactListAdapter extends ListAdapter<String> { 

private final List contacts; 

//Call to super to set up the adapter 
    public ContactListAdapter(Context context, List<Contact> contacts) { 
    super(context, R.layout.rowlayout, values); 
    this.contacts = contacts; 
} 

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    //Get your View 
    View rowView = inflater.inflate(R.layout.rowlayout, parent, false); 

    //create the emelements you want to add to list 
    TextView textView = (TextView) rowView.findViewById(R.id.label); 
    textView.setText(contacts.get(position).getId()) 

    return rowView 
} 
} 

那么这个适配器添加到您的ListView和初始化它

希望这有助于你

+0

谢谢..它的帮助.. – chyreel

+0

我有一个最后一个问题..我如何添加列表 contacts = db.getAllContacts();进入ArrayAdapter = new ArrayAdapter (this,R.layout.lyout,R.id.Id,XXX);我可以将它插入XXX吗? – chyreel

相关问题