Gridview实现银行选择列表
package com.example.activitydemo; import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.RadioButton;
import android.widget.AdapterView.OnItemClickListener;
import android.app.Activity; public class MainActivity extends Activity { private Adapter gAdapter;
private GridView gBankLogo;
private int lastPosition = -1;
private View lastView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gBankLogo = (GridView)findViewById(R.id.gridView1);
gAdapter = new Adapter(this);
//TEST
for (int i = 0; i < 12; i++) {
String bank = "" ;
gAdapter.addObject("bank"+i, bank);
}
gBankLogo.setAdapter(gAdapter);
gBankLogo.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (lastPosition == position)
return;
if (lastPosition != position) {
if (lastPosition == -1) {
RadioButton tmp = (RadioButton) view.findViewById(R.id.rSelect);
tmp.setChecked(true);
lastView = view;
lastPosition = position;
} else {
RadioButton tmp = (RadioButton) view.findViewById(R.id.rSelect);
tmp.setChecked(true);
RadioButton tmp1 = (RadioButton) lastView.findViewById(R.id.rSelect);
tmp1.setChecked(false);
lastView = view;
lastPosition = position;
}
}
}
});
}
}
package com.example.activitydemo; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RadioButton; public class Adapter extends BaseAdapter {
private ViewHolder holder;
private LayoutInflater mLayoutInflater;
private static Map<String, Object> M = new HashMap<String, Object>();
private static List<String> L = new ArrayList<String>(); public Adapter(Context context) {
mLayoutInflater = LayoutInflater.from(context); } public void addObject(String key, String bank) {
if (!L.contains(key)) {
L.add(key);
}
M.put(key, bank);
this.notifyDataSetChanged();
} public void removeObject(String key) {
M.remove(key);
L.remove(key);
this.notifyDataSetChanged();
} public void removeAllObject() {
if (getCount() != 0) {
M.clear();
L.clear();
this.notifyDataSetChanged();
}
} public void removeAllSelect() {
if (getCount() != 0) {
holder.rSelect.setChecked(false);
this.notifyDataSetChanged();
}
} @Override
public int getCount() {
// TODO Auto-generated method stub
return M.size();
} @Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return M.get(L.get(position));
} @Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
} @Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if (convertView == null) {
holder = new ViewHolder();
convertView = mLayoutInflater.inflate(R.layout.item_msgbanklogo,
null);
holder.iBankLogo = (ImageView) convertView
.findViewById(R.id.iBankLogo);
holder.rSelect = (RadioButton) convertView
.findViewById(R.id.rSelect);
holder.iBankLogo.setClickable(false);
holder.rSelect.setClickable(false);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.iBankLogo.setImageResource(R.drawable.abc);
return convertView;
}
}
【ViewHolder.java】
package com.example.activitydemo; import android.widget.ImageView;
import android.widget.RadioButton; public class ViewHolder {
ImageView iBankLogo;
RadioButton rSelect;
}
Gridview实现银行选择列表的更多相关文章
- 当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式.比如 select * from T_Employee where FNumber not in ( select top 5* ...
- 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中 T-SQL核心语句形式: SELECT --指定要选择的列或行及其限定 [INTO ] --INTO子句 ...
- openerp模块收藏 移除下拉选择列表中的“创建并编辑”链接(转载)
移除下拉选择列表中的“创建并编辑”链接 原文:http://shine-it.net/index.php/topic,5990.0.html 有时希望下拉列表中列出的项是与主表某个字段关联的,用户只能 ...
- WSHPSRS-匹克选择列表生成器-SRS(R12.2.3)
匹克选择列表生成器-SRS(R12.2.3) --US Program:Pick Selection List Generation - SRS Short Name:WSHPSRS Appli ...
- 智能文件选择列表—— bat 批处理
智能文件选择列表 *.wim @echo off setlocal enabledelayedexpansion title 智能文件选择列表 pushd %~dp0 & cd /d %~dp ...
- 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句
在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句 突然看到这个问题,脑袋一蒙,不知道啥意思,后来想想,试图把select里的选项放到后面,问题自然解决! 下面这 ...
- C# 生成月份及天选择列表,方便做下拉框联动
月份及天选择列表,很方便做下拉框联动 /// <summary> /// 获取月份选择列表(根据当前语言环境显示月份名称) /// </summary> private IEn ...
- 选择列表中的列……无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
今天用SQL Server尝试实现一个SQL语句的时候,报了如标题所示的错误,通过在百度里面搜索,并亲自动手实现,终于发现问题所在,现在把它记录下来. 语句如下: select [OrderID],[ ...
- Bootstrap select(选择列表)
当您想让用户从多个选项中进行选择,但是默认情况下只能选择一个选项,则使用选择框 1.使用<select>展示列表选项 2.使用multiple="multiple"允许 ...
随机推荐
- 命令行,备份、导入数据库Oracle
备份库:exp username/password@Database file="h:\datas.dmp" owner=username 导入语句 :imp username2/ ...
- css实现三角的一些方法
css实现三角没有想象中的那么难,只要明白border的各种属性的意思就很好明白css三角是如何实现的. 一下是几个很简单的例子: css三角形状的制作: css样式: .trian ...
- BAE Flask UEditor 使用七牛云
1. 配置BAE支持七牛云的SDK BAE的python requirements当然不支持竞争对手了. 解决方法: 把qiniu这个文件包直接放置在你项目的目录中(与其他app同级) 运行会发现缺少 ...
- 抽象数据类型Triplet的C语言实现
#include <stdio.h> #include <stdlib.h> #define ERROR 0 #define OK 1 typedef int Status; ...
- SharePoint 获取Lookup 字段的值
获取某个List里的Lookup字段的值是很普遍的事,那么我们将它封装起来 获取Lookup字段值的方法: /// <summary> /// To get lookup field Id ...
- Kendo UI for Angular 2 控件
Kendo UI for Angular 2 控件 伴随着 Angular 2 的正式 release,Kendo UI for Angular 2 的第一批控件已经发布了,当前是 Beta 版本,免 ...
- LeapMotion预览——什么是LeapMotion
LeapMotion预览 这个就是LeapMotion: 原文转自: LeapMotion预览 LeapMotion 官网:http://leapmotion.com/ 开发者:https://d ...
- 【Winform 控件浅谈 】 之 WebBrowser
前言 鄙人才疏学浅,如果说错了,还请各位不吝赐教 1.什么是 WebBrowser 下面是已有的轮子,我想说它们是专业的 http://baike.baidu.com/view/2981935.htm ...
- ROR入门之旅
mac上为了不在登录画面看到其他账户,我禁用了root账户,而每次用Terminal的时候,先获得sudo账户的权限: sudo -s mac本身就安装有ruby ruby -v 查看当前安装的rub ...
- Struts 2 标签
注:要使用Strust 2标签需<%@ taglib prefix="s" uri="/struts-tags" %> 表单标签: .form标签 ...