listview子条目点击改变背景
布局什么的,自己操作就好
下面是Listview的适配器,在适配里完成有注释的代码即可:
public class ListView_Adapter extends BaseAdapter { List<Fenlei.DataBean> data; Context context; //要定义一个Int类型的变量 int aa; public ListView_Adapter(List<Fenlei.DataBean> data, Context context) { this.data = data; this.context = context; } @Override public int getCount() { return data.size(); } @Override public Object getItem(int i) { return data.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { viewHolder holder=null; if (view==null){ holder=new viewHolder(); view = View.inflate(context, R.layout.si, null); holder.te = view.findViewById(R.id.f2_list_tv); view.setTag(holder); }else { holder = (viewHolder) view.getTag(); } //根据值改变数据颜色 if(aa==i){ view.setBackgroundColor(Color.parseColor("#FAFAFA")); }else{ view.setBackgroundColor(Color.WHITE); } holder.te.setText(data.get(i).getName()); return view; } class viewHolder{ TextView te; } //给上面变量定义一个有参构造 public void setClickPosition(int aa){ this.aa = aa; } }
然后在你的主方法里调用你的Listview的Item点击事件,代码如下:
left_list_view.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
// 当前点击哪个条目
leftAdapter.setClickPosition(i);
// 刷新适配器
leftAdapter.notifyDataSetChanged();
// 讲item滚动到屏幕中间
left_list_view.smoothScrollToPositionFromTop(i, (view.getHeight() - view.getHeight()) / 2);
}
});