【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. 人人网FED CSS编码前端开发规范

    文件相关规范 1.文件名必须由小写字母.数字.中划线-组成 2.文件必须用utf-8编码 3.文件引入可通过外联或内联方式引入: 3.1 外联方式:<link rel=”stylesheet” ...

  2. mvc的真实含义

    MVC是一个设计模式,它强制性的使应用程序的输入.处理和输出分开.使用 MVC应用程序被分成三个核心部件:模型(M).视图(V).控制器(C),它们各自处理自己的任务. 视图 : 视图是用户看到并与之 ...

  3. MySql数据库1【概念】

    [mysql] mysql是目前最主流的跨平台.开放源代码的关系型数据库,由瑞曲的mysql ab公司开发,已经被SUN公司收购,标识是一只名为sakila的海豚,代表mysql的速度.能力.精确优秀 ...

  4. PuTTY + Xming 远程使用 Linux GUI

    from http://www.zw1840.com/blog/zw1840/2008/10/putty-xming-linux-gui.html 在家里的PC上用VMWare做了一个Oracle E ...

  5. shell笔记(基本知识)

    一.编写第一个shell程序 实例1: [程序] #!/bin/sh echo "hello word !" [运行]

  6. jquery cleditor 光标经常点不进去问题解决方法 bootstrap 富文本框 控件

    cleditor 光标点不进去,原因是内嵌的html代码段 body没有赋值默认高度. 解决方法1.赋值options.bodyStyle  设置min-height值.缺点:不能跟随设备更新最低高度 ...

  7. cloudera-scm-server ip改了怎么办了

    1.vi /etc/cloudera-scm-agent/config.ini #改下ip 2.manager 老只看到一个主机 rm -f /var/lib/cloudera-scm-agent/u ...

  8. iOS常用的加密方式--备用

    MD5 iOS代码加密 创建MD5类,代码如下 #import <Foundation/Foundation.h> @interface CJMD5 : NSObject +(NSStri ...

  9. SKYLINE

    uvalive4108:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&pag ...

  10. JDBC自动提交和批处理操作

    今天用JDBC与数据库进行交互的时候,报错如下: *************************************************************************** ...