我在我的应用中使用可扩展列表视图。
我在expandablelistview中为我选择的项目设置背景颜色。
当片段启动时,默认情况下会选择我的expandablelistview第一个子节点。但是我想从中获取第一个子视图,以便我可以更改背景颜色。
我在getChild()
中得到null请帮忙
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.mypage_list_fragment_f, container,
false);
initView(v);
View child = mLeftMenuListView.getChildAt(0);
child.setBackgroundResource(R.drawable.list_select);
mAdapter.notifyDataSetChanged();
mLeftMenuListView.invalidateViews();
return v;
}
private void initView(View v) {
mLeftMenuListView = (ExpandableListView) v
.findViewById(R.id.mypage_list_fragment_expandablelistview);
mAdapter = new MyPageListAdapter(getActivity(),
R.layout.mypage_left_menu_layout_group_i,
R.layout.mypage_left_menu_layout_group_child_i);
mAdapter.setmIsSelected(mIsSelected);
mLeftMenuListView.setAdapter(mAdapter);
mLeftMenuListView.setOnChildClickListener(new OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView arg0, View arg1,
int arg2, int arg3, long arg4) {
TextView category = (TextView) arg1
.findViewById(R.id.mypage_category);
mAdapter.setSelected(category.getText().toString());
mOnCategorySelectedListener.onCategorySelected(category
.getText().toString());
mAdapter.notifyDataSetChanged();
if (isKitkat) {
mChild = (RelativeLayout) arg1
.findViewById(R.id.child_relative);
if ( mChildLastColored != null) {
mChildLastColored.setBackgroundResource(Color.TRANSPARENT);
mChildLastColored.invalidate();
}
if (mGroupLastColored != null ) {
mGroupLastColored.setBackgroundResource(Color.TRANSPARENT);
}
mChildLastColored = arg1;
arg1.setBackgroundResource(R.drawable.list_select);
}
return false;
}
});
mLeftMenuListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView arg0, View arg1,
int arg2, long arg3) {
if (isKitkat) {
mGroup = (RelativeLayout) arg1
.findViewById(R.id.group_relative);
if (mGroupLastColored != null ) {
mGroupLastColored.setBackgroundResource(Color.TRANSPARENT);
mGroupLastColored.invalidate();
}
if ( mChildLastColored != null) {
mChildLastColored.setBackgroundResource(Color.TRANSPARENT);
}
mGroupLastColored = arg1;
arg1.setBackgroundResource(R.drawable.list_select);
}
TextView category = (TextView) arg1
.findViewById(R.id.mypage_category);
mAdapter.setSelected(category.getText().toString());
mOnCategorySelectedListener.onCategorySelected(category
.getText().toString());
mAdapter.notifyDataSetChanged();
return false;
}
});
mAdapter.setSelected(0);
}
答案 0 :(得分:-2)
您可以通过获取适配器和其中的视图来实现。这是你可以尝试的。 在膨胀之后,在onCreateView()内部,
View defaultSelectedListView = yourExpListView.getAdapter().getView(0, v, container);
defaultSelectedListView.setBackgroundColor(Color.RED);
希望这有帮助!!!