我有一個應用程序,從數據庫加載圖像到一個滾動視圖。我想將其更改爲ListView。卡住自定義Android列表視圖
這是我現在有:
在ListView的每一行應該從這個XML文件被誇大:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal"
android:layout_weight="1"
android:background="#FFFFFF">
<ImageButton
android:background="@drawable/roundcorners"
android:id="@+id/figura"
android:src="@drawable/rice"
android:scaleType="centerInside"
android:cropToPadding="false"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingBottom="10dip"
android:layout_height="84dip"
android:layout_width="98dip"
android:gravity="left">
</ImageButton>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="left"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:text="Rice"
android:id="@+id/txtNome"
android:gravity="center"
android:textColor="#000000"
android:textSize="30dip"
android:textStyle="bold"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:text="rice, food"
android:id="@+id/txtTags"
android:gravity="left"
android:textColor="#000000"
android:textSize="20dip"
android:textStyle="bold"/>
</LinearLayout>
</LinearLayout>
這基本上是一個圖像,它的名字和它的標籤。
我剛剛更新下面的代碼,以反映SLUKIAN的建議:
public class AnotherCursorAdapter extends SimpleCursorAdapter {
private LayoutInflater inflater;
public AnotherCursorAdapter(Context context,
int layout,
Cursor c,
String[] from,
int[] to) {
super(context, layout, c, from, to);
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
// get the views from the row
TextView name = (TextView) view.findViewById(R.id.txtNome);
TextView tags = (TextView) view.findViewById(R.id.txtTags);
ImageView img = (ImageView) view.findViewById(R.id.figura);
//asign the values
name.setText(cursor.getString(4)); // the number will be the index of the column containing the name
tags.setText(cursor.getString(3)); // the same thing
// set the image resource, i don't know how you stored it in the database
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
View v = inflater.inflate(R.layout.imgsinternas, null);
return v;
}
}
讓我在活動光標(從數據庫)在我的信息後,我這樣做:
AnotherCursorAdapter adapter = new AnotherCursorAdapter(CadItemActivity.this,
R.layout.imgsinternas,
cursorImagens,
new String[] {cursorImagens.getString(4), cursorImagens.getString(3)/*your columns from the cursor*/},
new int[] { R.id.txtNome, R.id.txtTags });
telaScroll.setAdapter(adapter);
當我運行建議的代碼時,出現以下錯誤:
java.lang.IllegalArgumentException:列'id'不存在
Slukian,我做錯了什麼?你能幫我嗎?
我真的很難用上面的代碼使用ListView。我有點失落。
如何將我的光標(cursorImagens)設置爲ListView的適配器?
如何設置圖像,名稱和標籤(這些是來自我的數據庫的三個信息)?
嘿傢伙......我見過很多教程,但其中大多數都是簡單的類,只是一個簡單的列表。
任何人都可以幫助我嗎?
任何幫助被讚賞!
看到這個[鏈接](http://mobile.dzone.com/news/listview-data-sqlitedatabase)希望充分,這將幫助你 – Deepak 2012-03-11 17:42:50