我的每一行都有一个ListView
我有一个LinearLayout
,其中有一些对象(大多数是TextViews)。
这个ListView我从光标动态填充它。在这个游标中,我有一个值为true或false。
我想要隐藏或不可点击值为false的行。我尝试这个代码但不起作用
public void contentProviderInitialized(final Cursor cursor) {
SimpleCursorAdapter commonTickets = new SimpleCursorAdapter(MyClass.this,
R.layout.row_ticketing, cursor, new String[] {"price", "productName", "stopName" },
new int[] { R.id.ticketing_price, R.id.ticketing_product, R.id.ticketing_stop_name }
) {
@Override
public void bindView(View view, Context context, Cursor cursor) {
String enabledStr = cursor.getString(cursor.getColumnIndex("enabled"));
String product = cursor.getString(cursor.getColumnIndex("productName"));
boolean enabled = Boolean.parseBoolean(enabledStr);
LinearLayout ticketingRow = (LinearLayout) view.findViewById(R.id.ticketing_row);
if (enabled) {
ticketingRow.setEnabled(true);
} else {
ticketingRow.setEnabled(false);
}
super.bindView(view, context, cursor);
};
MyClass.this.ticketing_list_view.setAdapter(commonTickets);
}
}
答案 0 :(得分:1)
在适配器上覆盖isEnabled
http://developer.android.com/reference/android/widget/BaseAdapter.html#isEnabled(int)
这个答案似乎暗示了它。在光标上使用movetoposition。但是,听起来表现不错,所以你可能想根据数字位置做一些真/假值的缓存?试试看。看看它如何。缓存可能是一种浪费。
答案 1 :(得分:0)
这对尝试其他方法很有帮助:
Android - how to delete item from a cursor?
将要查看的位置添加到新的MatrixCursor并将您的光标替换为新的Matrix Cursor