【MainActivity.java】

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;
}
}
}
});
}
}

【Adapter.java】
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实现银行选择列表的更多相关文章

  1. 当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。

    当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式.比如 select * from T_Employee where FNumber not in ( select top 5*  ...

  2. 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中 T-SQL核心语句形式: SELECT     --指定要选择的列或行及其限定  [INTO ]      --INTO子句 ...

  3. openerp模块收藏 移除下拉选择列表中的“创建并编辑”链接(转载)

    移除下拉选择列表中的“创建并编辑”链接 原文:http://shine-it.net/index.php/topic,5990.0.html 有时希望下拉列表中列出的项是与主表某个字段关联的,用户只能 ...

  4. WSHPSRS-匹克选择列表生成器-SRS(R12.2.3)

     匹克选择列表生成器-SRS(R12.2.3) --US Program:Pick Selection List Generation - SRS Short Name:WSHPSRS Appli ...

  5. 智能文件选择列表—— bat 批处理

    智能文件选择列表 *.wim @echo off setlocal enabledelayedexpansion title 智能文件选择列表 pushd %~dp0 & cd /d %~dp ...

  6. 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句

    在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句  突然看到这个问题,脑袋一蒙,不知道啥意思,后来想想,试图把select里的选项放到后面,问题自然解决!   下面这 ...

  7. C# 生成月份及天选择列表,方便做下拉框联动

    月份及天选择列表,很方便做下拉框联动 /// <summary> /// 获取月份选择列表(根据当前语言环境显示月份名称) /// </summary> private IEn ...

  8. 选择列表中的列……无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    今天用SQL Server尝试实现一个SQL语句的时候,报了如标题所示的错误,通过在百度里面搜索,并亲自动手实现,终于发现问题所在,现在把它记录下来. 语句如下: select [OrderID],[ ...

  9. Bootstrap select(选择列表)

    当您想让用户从多个选项中进行选择,但是默认情况下只能选择一个选项,则使用选择框 1.使用<select>展示列表选项 2.使用multiple="multiple"允许 ...

随机推荐

  1. 命令行,备份、导入数据库Oracle

    备份库:exp username/password@Database file="h:\datas.dmp" owner=username 导入语句 :imp username2/ ...

  2. css实现三角的一些方法

    css实现三角没有想象中的那么难,只要明白border的各种属性的意思就很好明白css三角是如何实现的. 一下是几个很简单的例子:   css三角形状的制作:     css样式:    .trian ...

  3. BAE Flask UEditor 使用七牛云

    1. 配置BAE支持七牛云的SDK BAE的python requirements当然不支持竞争对手了. 解决方法: 把qiniu这个文件包直接放置在你项目的目录中(与其他app同级) 运行会发现缺少 ...

  4. 抽象数据类型Triplet的C语言实现

    #include <stdio.h> #include <stdlib.h> #define ERROR 0 #define OK 1 typedef int Status; ...

  5. SharePoint 获取Lookup 字段的值

    获取某个List里的Lookup字段的值是很普遍的事,那么我们将它封装起来 获取Lookup字段值的方法: /// <summary> /// To get lookup field Id ...

  6. Kendo UI for Angular 2 控件

    Kendo UI for Angular 2 控件 伴随着 Angular 2 的正式 release,Kendo UI for Angular 2 的第一批控件已经发布了,当前是 Beta 版本,免 ...

  7. LeapMotion预览——什么是LeapMotion

    LeapMotion预览 这个就是LeapMotion: 原文转自:   LeapMotion预览 LeapMotion 官网:http://leapmotion.com/ 开发者:https://d ...

  8. 【Winform 控件浅谈 】 之 WebBrowser

    前言 鄙人才疏学浅,如果说错了,还请各位不吝赐教 1.什么是 WebBrowser 下面是已有的轮子,我想说它们是专业的 http://baike.baidu.com/view/2981935.htm ...

  9. ROR入门之旅

    mac上为了不在登录画面看到其他账户,我禁用了root账户,而每次用Terminal的时候,先获得sudo账户的权限: sudo -s mac本身就安装有ruby ruby -v 查看当前安装的rub ...

  10. Struts 2 标签

    注:要使用Strust 2标签需<%@ taglib prefix="s" uri="/struts-tags" %> 表单标签: .form标签 ...