关于android开发中的findViewById,将其封装在其他类里。实例化其他类调用的时候出错?

——-——————Menu类-----------------------------------------------------------------------... ——-——————Menu类-----------------------------------------------------------------------------------

我使用了几个imageview做了一个菜单,为了增加代码的可读性。我将几个imageview写成一个
类。问题出现在这个构造函数里。一调用这个构造函数就出错。
———————————Menu类-———————————————————————————

————————————————Mainactivity类-------------------------------------------------------------

而我注释掉Menu的构造函数,然后直接默认的构造函数初始化,在Mainactivity中写上上面那个函数,这样调用完全没问题,不会出错。
————————————————Mainactivity类-------------------------------------------------------------
展开
 我来答
ml014789
2014-05-21 · TA获得超过1346个赞
知道小有建树答主
回答量:2347
采纳率:37%
帮助的人:741万
展开全部
findviewbyid方法的调用有前面是view,你确定你的是对的?
/**
* Look for a child view with the given id. If this view has the given
* id, return this view.
*
* @param id The id to search for.
* @return The view that has the given id in the hierarchy or null
*/
public final View findViewById(int id) {
if (id < 0) {
return null;
}
return findViewTraversal(id);
}
这个方法属于view类的
更多追问追答
追问
你看我问题,就是说,直接写在activity里可以找到imageview,连事件都可以写。但是如果写开成一个类,然后查找就不行。
追答
是啊,我不是贴了此方法的源码了吗。看不懂?

建议你看一下源码;
最好不要分成个类来写。
如果你非要这么写,你的那个类初始化的时候传过去个 activity的getwindow()参数,用这个view来findviewbyid,这样就对了,可以参考activity的源码
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式