我在我的應用程序中使用了一個列表視圖,這是從數據庫中填充的。我想要做的事情取決於一些計算,例如,將單個列表視圖項目的文本顏色設置爲紅色。有沒有辦法做到這一點?Android將顏色設置爲列表視圖項目
這裏是我如何填充列表視圖:
Cursor cursor = dbHelper.executeSQLQuery(sql);
if(cursor.getCount()==0){
Log.i("Cursor Null","CURSOR IS NULL");
nocards.setVisibility(View.VISIBLE);
} else if(cursor.getCount()>0){
nocards.setVisibility(View.GONE);
for(cursor.move(0); cursor.moveToNext(); cursor.isAfterLast()) {
text = cursor.getString(cursor.getColumnIndex("Title"));
Log.i("Show Title","Show Title : "+text);
collId = Integer.parseInt(cursor.getString(cursor.getColumnIndex("CollID")));
Log.i("CollId","Collection ID : "+collId);
if (isLoggedIn) {
for(int k=0; k<ObjectID.size(); k++){
if (ObjectID.get(k) == collId){
cardsCount = OwnedCardsCount.get(k);
}
}
} else {
cardsCount = cursor.getString(cursor.getColumnIndex("TotalCards"));
}
String sqlite2 = "SELECT media_id FROM collection_media WHERE collection_id="+collId+" AND media_type_id="+fronImage;
Cursor bg = dbHelper.executeSQLQuery(sqlite2);
if (bg.getCount() == 0) {
bg.close();
} else if (bg.getCount() > 0) {
for (bg.move(0); bg.moveToNext(); bg.isAfterLast()) {
int mediId = Integer.parseInt(bg.getString(bg.getColumnIndex("media_id")));
Log.i("","mediId : " + mediId);
//if(storageID==1){
path = rpc.getPublicPathsInternal(servername, fronImage, mediId, Recommended.this);
/*} else if(storageID==2){
path = rpc.getPublicPathsExternal(servername, fronImage, mediId);
}*/
Log.v("","path: "+path);
}
}
array.add(collId);
hm = new HashMap<String, Object>();
hm.put(IMAGE, path);
hm.put(TITLE, text);
hm.put(CARDS_COUNT, cardsCount +" Stampii");
items.add(hm);
}
}
final SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.main_listview,
new String[]{TITLE, CARDS_COUNT, IMAGE}, new int[]{ R.id.main_name, R.id.main_info, R.id.main_img});
lv1.setAdapter(adapter);
lv1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v, int position, long id)
{
Intent previewMessage = new Intent(Recommended.this, MyCollectionId.class);
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
previewMessage.putExtra("collection_id", array.get(position));
previewMessage.putExtra("opentype", 1);
parentActivity.startChildActivity("MyCollectionId", previewMessage);
}
});
和我main_listview.xml代碼:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:orientation="horizontal"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/main_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_margin="4dp"/>
<TextView
android:id="@+id/main_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="14dp"
android:textColor="#000000"
android:textStyle="bold"
android:layout_toRightOf="@+id/main_img"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/main_info"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/main_name"
android:layout_toRightOf="@+id/main_img"
android:textSize="12dp"
android:textColor="#666666"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"/>
<ImageView
android:id="@+id/arrow"
android:src="@drawable/ic_arrow_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:layout_centerVertical="true" />
</RelativeLayout>
</LinearLayout>
所以我想main_name的文字顏色設置爲紅色。有什麼建議麼?
1卡= 1000個字。 –
使用自定義適配器..擴展光標適配器 –