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"允许 ...
随机推荐
- Codeforces 441D Valera and Swaps(置换群)
题意: 给定一个1~n的排列(n<=3000),输出字典序最小且次数最少的交换操作,使得操作后的排列可以通过最少m次交换得到排列[1,2,...n] Solution: 可以将排列的对应关系看做 ...
- mysql 连接问题----转载
最近碰到一个mysql5数据库的问题.就是一个标准的servlet/tomcat网络应用,后台使用mysql数据库.问题是待机一晚上后,第二天早上第一次登录总是失败.察看日志发现如下错误: “com. ...
- DOM对象控制HTML无素——详解1
getElementsByName()方法 返回带有指定名称的节点对象的集合. 语法: document.getElementsByName(name) 与getElementById() 方法不同的 ...
- 判断JS类型
(function (root, factory) { if (typeof define === 'function' && define.amd) { define([], fac ...
- EasyUI篇のDataGrid
HTML: <table id="dg"></table> 或者 <div id="dg"></div> JS: ...
- [bug]Syntax error, unrecognized expression: input#ctl00$ContentPlaceHolder1$Pager_input
1.在ie10上浏览页面的时候,突然发现在使用Aspnetpager的页面会有一个bug. 2. 3.查了很多解决方案,最后将vs2013中, 将该勾取消,再次浏览,你会发现就正常了,虽然该功能很强大 ...
- Python字符编码讲解
声明:本文参考 Python字符编码详解 在计算机中我们不管用什么语言和程序,最终数据在计算机中的都是字节码(也就是01形式)的形式存在的,如果 计算机直接把字节码显示在屏幕上,很明显一般人看不懂字节 ...
- wordpress 设置头像
默认的wordpress头像是第三方的.. 如果想自己上传.就得装插件了 WP User Avatar 安装完成后..设置下面就会出现这个选项..然后自己就可以上传头像了 原文:http://abuj ...
- XML CDATA
/* <![CDATA[ */var mv_dynamic_to_top = {"text":"To Top","version":& ...
- AVL树的算法思路整理
http://www.cnblogs.com/heqile/archive/2011/11/28/2265713.html 看完了<数据结构与算法分析(C++描述)>的4.4节AVL树,做 ...