listview点击一行高亮
来源:互联网 发布:淘宝让你提供质检报告 编辑:程序博客网 时间:2024/05/17 18:28
有时候在点击listview一个item时,为了让用户知道点击是那一行了,那就被点击的一行背景颜色要和其他没有被点击的item区分开来,点击一个item,那item背景颜色就变色,这个怎么做呢,其实很简单,当listview点击事件时,可以得到一个position,代表是listview中那一个item被点击了,然后在adapter中的getView()方法中position相比较,凡是界面上的一定要在getView()方法中做操作,
package com.example.listview;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.RelativeLayout;import android.widget.TextView;public class MainActivity extends Activity {private ListView listview;private ArrayList<String> datas;private LayoutInflater inflater;private MyAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listview = (ListView) findViewById(R.id.listview);inflater = LayoutInflater.from(this);initData();adapter = new MyAdapter();listview.setAdapter(adapter);listview.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {adapter.setClickPosition(position);adapter.notifyDataSetChanged();}});}private void initData() {datas = new ArrayList<String>();for(int i=0;i<100;i++){datas.add("我是item-------");}}class MyAdapter extends BaseAdapter{private int clickPosition = -1;public void setClickPosition(int clickPosition) {this.clickPosition = clickPosition;}@Overridepublic int getCount() {return datas.size();}@Overridepublic Object getItem(int arg0) {return datas.get(arg0);}@Overridepublic long getItemId(int arg0) {return arg0;}@Overridepublic View getView(int position, View converView, ViewGroup arg2) {ViewHolder holder = null;if(converView==null){converView = inflater.inflate(R.layout.item, null);holder = new ViewHolder();holder.tvContent = (TextView) converView.findViewById(R.id.tvContent);holder.rlRoot = (RelativeLayout) converView.findViewById(R.id.rlRoot); converView.setTag(holder);}else{holder = (ViewHolder) converView.getTag();}if(clickPosition==position){holder.rlRoot.setBackgroundColor(getResources().getColor(R.color.click_chang_color));}else{holder.rlRoot.setBackgroundColor(getResources().getColor(R.color.white));}holder.tvContent.setText(datas.get(position));return converView;}class ViewHolder{TextView tvContent;RelativeLayout rlRoot;}}}
效果:
0 0
- listview点击一行高亮
- android listview 一行高亮
- android listView点击item,高亮显示
- listSelector: ListView点击后不让他高亮的办法
- ListView的一列点击后,点击的背景一直存在的问题(高亮显示)。
- 有关ListView的每一行无法点击的问题
- 点击listView控件只有第一行有反应的解决办法
- C# listView点击某一行获取这一行的值
- CListCtrl高亮显示一行
- Qt qml ListView 鼠标点击高亮,缩放等基础设置
- 点击高亮!!!
- collection点击高亮...
- expandableListView点击高亮
- ListControl自动高亮显示下一行
- Android中ListView通过ContextMenu删除当前点击的一行数据
- Android开发之去掉listview的点击效果,一行代码间接粗暴,解决你的问题。
- 菜单点击高亮显示
- iOS点击按钮高亮
- YARN详解_参数配置
- 【图论】二分图匹配总结
- 数据结构之链表七:单链表中重复元素的删除
- 普朗克交回拟好嘎多晒太阳
- JDK中rt.jar、tools.jar和dt.jar作用
- listview点击一行高亮
- 关于技术学习的一点思考
- 排序字符串的前缀压缩算法,结合lucene
- HDU1518 Square 【剪枝】
- hdu 5093 Battle ships(最大流)
- 栈和队列
- HDU 5099 Comparison of Android versions(字符串)
- [LeetCode OJ]Populating Next Right Pointers in Each Node
- Android项目-高考作文功能简介(一)