私はAndroidで簡単なアプリケーションを開発しています。私は(今のところ)カテゴリのリストを持っており、それをリストとして表示したいと思います。次に(しかしこれは遠く離れています)クリックして、いくつかの機能で別のアクティビティを開始します...まあ、状況:
私のsingle_list_item.xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<!-- Name Label -->
<TextView android:id="@+id/category_label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:textColor="#43bd00"/>
<!-- Description Label -->
</LinearLayout>
ここでの主なアクティビティでは、アダプターとレイアウトを呼び出します。
List<categorie> values = datasource.getAllCategorie();
// Use the SimpleCursorAdapter to show the
// elements in a ListView
ArrayAdapter<categorie> adapter = new ArrayAdapter<categorie>(this,
R.layout.single_list_item, values);
setListAdapter(adapter);
ここのデータソースで、getAllCategorieを宣言します。
public List<categorie> getAllCategorie() {
List<categorie> categorie = new ArrayList<categorie>();
Cursor cursor = database.query(MySQLiteHelper.TABLE_CATEGORIE,
allCategorieColumns, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
categorie categoria = cursorToCategorie(cursor);
categorie.add(categoria);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return categorie;
}
そして最後にcategorie.class:
public class categorie {
private long id;
private String nome;
private long preferita;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public long getPreferita() {
return preferita;
}
public void setPreferita(long preferita) {
this.preferita = preferita;
}
// Will be used by the ArrayAdapter in the ListView
@Override
public String toString() {
return nome;
}
}
現在、アプリを実行すると、リストビューの開始中にフリーズし、完全に空になります。名前やIDなどの各カテゴリ要素を配置する場所、または「いいね」されているかどうかを指定したいと思います(categorie.classでPreferitaを取得して設定します)。
私が始めたとき、アダプターの部分は次のとおりでした。
ArrayAdapter<categorie> adapter = new ArrayAdapter<categorie>(this,
android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
そして、すべてが魔法のようにOKでした...なぜデフォルトのレイアウトを使用してもOKなのですか?繰り返しますが、何がどこに行くのかをどこで指定しますか?
前もって感謝します。