自定义Adapter实现类似office表格被选中的效果
来源:互联网 发布:淘宝高仿手表店铺名字 编辑:程序博客网 时间:2024/06/05 14:47
自定义Adapter实现类似office表格被选中的效果
已有 298 次阅读2012-6-18 11:15 |个人分类:ListView|系统分类:Android开发| 表格, office, BaseAdapter
package com.mexxen.util;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
/**自定义List*/
public class ListAdapter extends BaseAdapter{
// 被选中的序号
private int selectedPosition = -1;
private LayoutInflater inflater;
// CONTEXT
private Context context;
/**要导入进的数据源*/
private List<Map<String, Object>> data;
private int resource;
private String[] from;
private int[] to;
private TextView[] tv;
public ListAdapter(Context context, List<Map<String, Object>> data, int resource, String[] from, int[] to){
this.context = context;
this.data = data;
this.resource = resource;
this.from = from;
this.to = to;
tv = new TextView[to.length];
}
public int getSelectedPosition() {
return selectedPosition;
}
public void setSelectedPosition(int selectedPosition) {
this.selectedPosition = selectedPosition;
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return data.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View view, ViewGroup arg2) {
if(inflater == null){
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
if(view == null){
view = inflater.inflate(resource, null, false);
}
for(int i = 0; i < to.length; i++){
// 遍历数组,给每个TextView设置文本内容
tv[i] = (TextView) view.findViewById(to[i]);
tv[i].setText(data.get(position).get(from[i]).toString());
}
if(selectedPosition == position){
for(int i = 0; i < to.length; i++){
tv[i].setSelected(true);
tv[i].setPressed(true);
tv[i].setBackgroundColor(Color.BLUE);
tv[i].setTextColor(Color.WHITE);
}
}else{
for(int i = 0; i < to.length; i++){
tv[i].setSelected(false);
tv[i].setPressed(false);
tv[i].setBackgroundColor(Color.WHITE);
tv[i].setTextColor(Color.BLACK);
}
}
return view;
}
}
Activity中调用
Listview listView;
private ListAdapter la;
//实例化listView
Activity中调用
Listview listView;
private ListAdapter la;
//实例化listView
//实例化自定义适配ListAdapter
//与系统的 SimpleAdapter 参数一样只是to只能是TextView的数组
la =new ListAdapter(context, data, resource, from, to);
listView.setOnItemClickListener(new OnItemClickListener() {
//与系统的 SimpleAdapter 参数一样只是to只能是TextView的数组
la =new ListAdapter(context, data, resource, from, to);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
la.setSelectedPosition(position - 1);
la.notifyDataSetInvalidated();
}
});
此代码超过100个TextView会比较卡,数据多建议分页。
此代码超过100个TextView会比较卡,数据多建议分页。
0 0
- 自定义Adapter实现类似office表格被选中的效果
- 自定义uiview 实现类似alertview的效果
- UITabBarController 类似自定义效果的实现
- 自定义 LinearLayout 实现类似 CoordinatorLayout 的效果
- 自定义view类之实现Iphone类似的boundview效果
- 自定义ViewGroup实现类似ViewPager的滑动效果
- Fragment与自定义布局实现类似tab的效果
- Fragment与自定义布局实现类似tab的效果
- 自定义View实现类似QQ图片上传的效果
- 自定义Textview实现类似电池进度条的效果
- android 自定义view实现类似圆盘抽奖的效果
- 初识kotlin实现一个类似烟花效果的自定义view
- 自定义tableviewCell的选中效果
- 使用ListView控件实现漂亮的自定义表格效果实例
- 使用ListView控件实现漂亮的自定义表格效果实例
- Android自定义button的实现,未选中,按下,选中效果
- 巧用CSS实现表格的隐藏显示控制,类似分页效果
- 类似NumberPicker的效果实现
- 马航失联,全球搜救
- 一个JavaScript工程师必须掌握的几个方面
- Starting MySQL. ERROR! The server quit without updating PID file (/longxibendi/mysql/mysql.pid).
- linux的线程同步机制
- 港媒:美拒出兵乌克兰警示了亚洲玩火者
- 自定义Adapter实现类似office表格被选中的效果
- ios开发-指定文件夹管理
- http://www.jeasyui.com/demo/main/index.php?plugin=DataGrid&theme=default&dir=ltr&pitem=
- Oracle游标与绑定变量
- 五子棋
- EhCache与spring整合
- Http servlet传递对象
- 那是光的短暂或恒久吗?
- java.security.MessageDigest的使用,MD5,安全密令