我有一个ListView
我希望比较我的项目。
如果项目相同,我想为ListView
中的这些项目制作相同的背景颜色。
你能帮帮我吗?
答案 0 :(得分:0)
您必须为列表创建适配器。 在适配器内部,您可以像#34;定制"单行的布局
答案 1 :(得分:0)
您可以通过ListView的自定义适配器执行此操作。
在以下适配器(带有SQL Lite数据库查询的ListView的光标适配器作为源数据)中,背景设置为 getView 方法中的交替颜色。检测相同项目的代码可能会更复杂,并且取决于数据。
/**
* Created by Mike092015 on 17/02/2016.
*/
public class Database_Inspector_ProductsDB_Adadpter extends CursorAdapter {
public Database_Inspector_ProductsDB_Adadpter(Context context, Cursor cursor, int flags) {
super(context, cursor, 0);
}
@Override
public View getView(int position, View convertview, ViewGroup parent) {
View view = super.getView(position, convertview, parent);
Context context = view.getContext();
if (position % 2 == 0) {
view.setBackgroundColor(ContextCompat.getColor(context, R.color.colorlistviewroweven));
} else {
view.setBackgroundColor(ContextCompat.getColor(context, R.color.colorlistviewrowodd));
}
return view;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView textviewproductid = (TextView) view.findViewById(R.id.adipe_productsdb_id);
TextView textviewproductname = (TextView) view.findViewById(R.id.adipe_productsdb_name);
TextView textviewproductorder = (TextView) view.findViewById(R.id.adipe_productsdb_order);
TextView textviewproductaisle = (TextView) view.findViewById(R.id.adipe_productsdb_aisle);
TextView textviewproductuses = (TextView) view.findViewById(R.id.adipe_productsdb_uses);
TextView textviewproductnotes = (TextView) view.findViewById(R.id.adipe_productsdb_notes);
textviewproductid.setText(cursor.getString(ShopperDBHelper.PRODUCTS_COLUMN_ID_INDEX));
textviewproductname.setText(cursor.getString(ShopperDBHelper.PRODUCTS_COLUMN_NAME_INDEX));
textviewproductorder.setText(cursor.getString(ShopperDBHelper.PRODUCTS_COLUMN_ORDER_INDEX));
textviewproductaisle.setText(cursor.getString(ShopperDBHelper.PRODUCTS_COLUMN_AISLE_INDEX));
textviewproductuses.setText(cursor.getString(ShopperDBHelper.PRODUCTS_COLUMN_USES_INDEX));
textviewproductnotes.setText(cursor.getString(ShopperDBHelper.PRODUCTS_COLUMN_NOTES_INDEX));
};
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.activity_database_inspect_productsdb_entry,parent, false);
}
}