gpt4 book ai didi

java - Android-SimpleCursorTreeAdapter-bindChildView 覆盖

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:54 24 4
gpt4 key购买 nike

如何根据光标特定值自定义行布局?我猜我需要自定义bindChildView - 但如何呢? :)

主要功能:

public void fillQuestions(int id) {
Cursor questionsCursor = db.getQuestions(id);
EventActivity.this.startManagingCursor(questionsCursor);
questionsCursor.moveToFirst();

ExpandableListView questionsList = (ExpandableListView) findViewById(R.id.elv_questions);

ExpandableQuestionsAdapter adapter = new ExpandableQuestionsAdapter(
questionsCursor,
EventActivity.this,
R.layout.display_name_row,
R.layout.display_cb_answer_row,
new String[] {"questionText"},
new int[] {R.id.r_lv_name},
new String[] {"answerName"},
new int[] {R.id.r_lv_cb_name});



}

适配器:

    public class ExpandableQuestionsAdapter extends SimpleCursorTreeAdapter {


public ExpandableQuestionsAdapter(Cursor cursor, Context context, int groupLayout,
int childLayout, String[] groupFrom, int[] groupTo, String[] childrenFrom,
int[] childrenTo) {
super(context, cursor, groupLayout, groupFrom, groupTo, childLayout, childrenFrom, childrenTo);
}

@Override
protected Cursor getChildrenCursor(Cursor groupCursor) {
Cursor childCursor = db.getAnswers(groupCursor.getInt(groupCursor.getColumnIndex(KEY_F_ID)));
EventActivity.this.startManagingCursor(childCursor);
childCursor.moveToFirst();
return childCursor;

}

@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View rowView = super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent);
return rowView;
}

@Override
protected void bindChildView(View view, Context context, Cursor cursor, boolean isLastChild) {
super.bindChildView(view, context, cursor, isLastChild);
}
}

我试图寻找一些示例,遗憾的是找不到任何示例 - 感谢任何帮助

谢谢,雅库布

最佳答案

我不是很专业,但也许我的研究可以帮助你

protected void bindChildView(View view, Context context, Cursor getChildrenCursor, boolean isLastChild) {
super.bindChildView(view, context, getChildrenCursor, isLastChild);
//take value from getChildrenCursor but its also work with just cursor, because its already have correct position
String color = getChildrenCursor.getString(getChildrenCursor.getColumnIndex(COLOR));
//String color ="#1B3F51B5";
view.setBackgroundColor(Color.parseColor(color));
}

在我的例子中,我有特定的列颜色,其颜色值如#1B3F51B5您也可以使用类似的内容来代替 view.setBackgroundColor

TextView textView = (TextView) view.findViewById(R.id.r_lv_name);
textView.setBackgroundColor(Color.parseColor(color));

关于java - Android-SimpleCursorTreeAdapter-bindChildView 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41298405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com