【发布时间】:2017-05-22 13:40:42
【问题描述】:
我在我的应用程序中使用数据库。我可以创建一些“笔记”,并定义类型:作业或测试。
然后我将它显示在 ListView 中。 但是,当创建行时,我想检查我是否选择了“家庭作业”作为类型,如果选择了,我会在我的 listView 中为该行添加一个复选框,但是如果我选择了“测试”,我会这样做不显示复选框。
然后,通过复选框,我可以使用 cb.isChecked() 将作业设置为完成或未完成。但首先,如果它是家庭作业,我必须只显示复选框。但我不知道如何检查它..
我该怎么做?
这是我的 CustomAdapter 类
public class CustomAdapterJalons extends SimpleCursorAdapter {
private Context mContext;
private Context appContext;
private int layout;
private Cursor cr;
private final LayoutInflater inflater;
public CustomAdapterJalons(Context context, int layout, Cursor c, String[] from, int[] to) {
super(context, layout, c, from, to);
this.layout = layout;
this.mContext = context;
this.inflater = LayoutInflater.from(context);
this.cr = c;
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return inflater.inflate(layout, null);
}
@Override
public void bindView(View view, final Context context, final Cursor cursor) {
super.bindView(view, context, cursor);
LinearLayout root_view = (LinearLayout)view.findViewById(R.id.item_root);
root_view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//method
}
});
final int position = cursor.getPosition();
cursor.moveToPosition(position);
int devoir = cursor.getInt(3);
int evaluation = cursor.getInt(4);
CheckBox cbdevoir = (CheckBox)view.findViewById(R.id.CBDevoir);
if(devoir==1)
{
cbdevoir.setVisibility(View.VISIBLE);
}
if(evaluation==1)
{
cbdevoir.setVisibility(View.INVISIBLE);
}
}
}
谢谢你们!
【问题讨论】:
-
您必须添加条件以检查当前位置数据是否为作业或测试作业是否将复选框的可见性设置为可见,否则设置为 GONE/INVISIBLE
-
我该怎么做?
-
从光标中获取您需要检查的列,然后...检查它。如果您不熟悉它,请查看 higherpass.com/android/tutorials/… 或只是谷歌它有很多 tuts。
-
您的光标是否包含任何可以区分是作业还是测试的值?
-
是的,在我的光标中我有很多值,但其中之一是检查它是作业还是测试
标签: android listview checkbox custom-adapter