1.ListView:要使监听事件共存需要设置android:descendantFocusability="blocksDescendants"在布局文件里设置(不是ListView文件),可以使单个item可以被选中。
2. scrollview 嵌套listview重写listview时要设置setParentScrollAble(false);// 当手指触到listview的时候,让父ScrollView交出ontouch权限
3.listview 的item设置背景颜色为白色或透明时会覆盖Item的点击效果。
4." android:listSelector="#00000000" 去除listview的点击效果
6.android:divider="@null" 去除listview的item分割线
7.listview中点击item进行Item中的控件更新操作 public class MyAdapter extends BaseAdapter
{
private Context context;
private List<String> list;
public MyAdapter(Context context, List<String> list)
{
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder=null;
if (convertView==null)
{
convertView=LayoutInflater.from(context).inflate(R.layout.item,null);
viewHolder=new ViewHolder();
viewHolder.textView= (TextView) convertView.findViewById(R.id.textview);
convertView.setTag(viewHolder);
}else
{
viewHolder= (ViewHolder) convertView.getTag();
}
viewHolder.textView.setText(list.get(position));
return convertView;
}
// public mCallBack mcallback=null;
// public void setCallBack(mCallBack mcallback)
// {
// this.mcallback=mcallback;
// }
//
//
// public interface mCallBack{
// void result(String text);
// }
static class ViewHolder{
TextView textView;
}
}
public class MainActivity extends AppCompatActivity {
private ListView listView;
private List<String> list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView= (ListView) findViewById(R.id.listview);
list.add("aaaaa");
list.add("vvvvv");
list.add("cccccc");
list.add("aaaaa11");
list.add("vvvvv11");
list.add("ccccc222c");
list.add("aaaaa112");
list.add("vv324vvv");
list.add("ccdsfdcccc");
list.add("aadfsdsaaa");
list.add("vvqqqqvvv");
list.add("cc1111cccc");
MyAdapter myAdaoter=new MyAdapter(this,list);
listView.setAdapter(myAdaoter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//主要就通过底下的方法进行的
View view1 = listView.getChildAt(position);
MyAdapter.ViewHolder viewHolder= (MyAdapter.ViewHolder) view1.getTag();
viewHolder.textView.setTextColor(Color.rgb(220,20,60));
}
});
}
}