-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。データはそこにありますが、それを呼び出してリストビューにデータを配置する方法がわかりません。

私はList<Contact> contacts = db.getAllContacts();Javaプログラムで使用していますが、ログ内のデータを表示する方法のみを示した例に固執しました。

データベースからデータを呼び出してリスト ビューで表示するには、どの方法を使用すればよいですか?

4

1 に答える 1

0

上記のように、アダプタを使用する必要があります。独自に作成し、これを ListView に追加します。これは大まかな方法​​です。ここでテキストエディターに直接入力すると、コードは少し荒くなります。

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 に追加して初期化します

これがお役に立てば幸いです

于 2012-10-31T11:50:19.690 に答える