9

SQLiteデータベースからのデータでListViewを埋めたいアプリがあります...この部分では、arrayAdapterに問題があります...

これがlistViewを埋めるためのメソッドの私のコードです:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list);
    PetListView = (ListView)findViewById(R.id.list);


    MyDatabaseHelper db = new MyDatabaseHelper(this);
    String [] items = new String[100];


    List<Pet> pets = db.getAllPets();
    for (int i = 0; i < 10; i++) {
        items[i] = pets.get(i).getName();                   
    }

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.activity_list_item, R.id.textView1list, items);
    PetListView.setAdapter(adapter);

}

これは私のデータベースヘルパーに実装されているメソッドです。

public List<Pet> getAllPets() {
    List<Pet> petList = new ArrayList<Pet>();
    String selectQuery = "SELECT * FROM " + TABLE_PETS;

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

    if (cursor.moveToFirst()) {
        do {
            Pet pet = new Pet();
            pet.setID(Integer.parseInt(cursor.getString(0)));
            pet.setName(cursor.getString(1));
            pet.setAge(cursor.getString(2));
            petList.add(pet);
        } while (cursor.moveToNext());
    }
    cursor.close();
    return petList;     
}

なぜtextView?私はListViewのみを使用しています...

SQLiteからのデータ(名前)でlistViewを埋める方法を他に教えてもらえますか?

4

1 に答える 1

13

使用する

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
          android.R.layout.activity_list_item, android.R.id.text1, items);

のインスタッド

 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
            android.R.layout.activity_list_item, R.id.textView1list, items);

ListViewのデフォルトのレイアウトをandroid.R.id.text1使用している場合は、TextViewIDとして使用しますactivity_list_item

于 2012-12-08T16:50:53.237 に答える