新题:如何给ListView的每一项ListItem上的不同ImageView添加事件处理
描述:有一个ListView,其中的ListItem 是通过一个循环,从数据库中取出相应信息。
每一个ListItem上放了两个ImageView: iv1 ,iv2
要求:添加点击事件处理,当点第一张图片即iv1的时候,输出“i am 1”,点击第二张的时候输出“i am 2”
老样子,照旧抛砖引玉,先说说我的思路,我记得我是说在循环的时候,通过下面的方式
Java代码
ImageView iv_1 = (ImageView)findViewById(R.id.iv1);
ImageView iv_2 = (ImageView)findViewById(R.id.iv2);
iv_y.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
。。。。。
}
}
来添加。当时并没有觉得错,也没人告诉我结果。
后来回来一试,悲剧了,直接异常退出。。
今晚又弄了2小时,还是没搞明白怎么弄。。
继续坐等高人出现。。
==================================================================
下面的老题大家都有各自的思路,
其中sky_guang的方法我试过,是可行的 :
1.Field f= (Field)R.drawable.class.getDeclaredField("imgName");
int id=f.getInt(R.drawable.class);
2.int id = getResources().getIdentifier(getPackageName()+":drawable/imgName", null,null);
以下是老题
==================================================================
在android程序中,有一个数据库文件"database.db"
里面有一张表 "pics"
表有3个属性"id","name" ,"url"
比如:
id name url
1 "dog" "pic1.jpg"
2 "goose" "pic2.jpg"
如何把数据库中的图片全部用ImageView显示出来?
(pic1.jpg pic2.jpg等图片已经放于drawable文件夹中)
===================================================================
此题,咋一看简单,但仔细想想,却又让人百思不得其解。我不知道是我确实想不出来还是今天状态不好。。
好吧,先说说我的思路:
大家都知道,Android里的图片都放于drawable文件夹中 , 由 R 自动生成其16进制的int型数值。
如:public static final int pic1=0x7f02003d;
我们可以通过 R.drawable.pic1 得到它的值。
ImageView时也可以通过setXXX(R.drawable.pic1)来设置。
但是,现在只知道这张图片的名字 "pic1.jpg"
我想通过一个函数,遍历R.drawable的所有属性名,当属性名==pic1的时候,返回它的值。
但是,后来细想又发现,遍历其所有属性名,还真不知道怎么弄。。。
然后又乱七八糟想了一些方法,都证明无法实施。。
哎。。。我是没辙了。。
跪等高人出现~~