职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 427|回复: 9

(第二波)巨泄今天去XXX公司面试遇到的BT问题

[复制链接]
叫我小乖 发表于 2011-7-22 09:35 | 显示全部楼层 |阅读模式
新题:如何给ListView的每一项ListItem上的不同ImageView添加事件处理

描述:有一个ListView,其中的ListItem 是通过一个循环,从数据库中取出相应信息。
      
      每一个ListItem上放了两个ImageView: iv1 ,iv2
      
要求:添加点击事件处理,当点第一张图片即iv1的时候,输出“i am 1”,点击第二张的时候输出“i am 2”

       老样子,照旧抛砖引玉,先说说我的思路,我记得我是说在循环的时候,通过下面的方式
                    
             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) {   
                                。。。。。   
}   
}  

             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的时候,返回它的值。

但是,后来细想又发现,遍历其所有属性名,还真不知道怎么弄。。。
然后又乱七八糟想了一些方法,都证明无法实施。。
哎。。。我是没辙了。。
跪等高人出现~~





月上萧萧 发表于 2011-7-22 09:35 | 显示全部楼层
是数据库里面存了图片的二进制数据  drawable可以通过bytes生成

北大青鸟 发表于 2011-7-22 09:35 | 显示全部楼层

dengyin2000
是数据库里面存了图片的二进制数据  drawable可以通过bytes生成




数据库里存的只是 图片名 诶。。。

天上智喜 发表于 2011-7-22 09:35 | 显示全部楼层
动态创建ImageView,然后设置图片路径,或者用I/O读取图片内容,再调用set方法。

紫衿 发表于 2011-7-22 09:36 | 显示全部楼层
jerychen
动态创建ImageView,然后设置图片路径,或者用I/O读取图片内容,再调用set方法。




代码写出来看看?  我也没想到方法,很好奇。。

 楼主| 叫我小乖 发表于 2011-7-22 09:36 | 显示全部楼层
不知道是不是对题目理解有问题
我认为那个URL属性里面记录的应该是完整的图片路径+文件名

走失的猫咪 发表于 2011-7-22 09:36 | 显示全部楼层
jerychen
动态创建ImageView,然后设置图片路径,或者用I/O读取图片内容,再调用set方法。



怎么动态创建?

秋秋 发表于 2011-7-22 09:36 | 显示全部楼层
南宫小骏
不知道是不是对题目理解有问题
我认为那个URL属性里面记录的应该是完整的图片路径+文件名




恩 ,你理解错了。  url属性里就是,全文件名 ,"pic1.jpg"这种,我帖子里已经说过了

北大青鸟 发表于 2011-7-22 09:36 | 显示全部楼层
眼瞎、 没看见放在drawable里面。

能文能武 发表于 2011-7-22 09:36 | 显示全部楼层
ak121077313
眼瞎、 没看见放在drawable里面。



那如果放在其他文件夹呢?


您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-30 04:53 , Processed in 0.143508 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表