关于android开发中的findViewById,将其封装在其他类里。实例化其他类调用的时候出错?
——-——————Menu类-----------------------------------------------------------------------...
——-——————Menu类-----------------------------------------------------------------------------------
我使用了几个imageview做了一个菜单,为了增加代码的可读性。我将几个imageview写成一个
类。问题出现在这个构造函数里。一调用这个构造函数就出错。
———————————Menu类-———————————————————————————
————————————————Mainactivity类-------------------------------------------------------------
而我注释掉Menu的构造函数,然后直接默认的构造函数初始化,在Mainactivity中写上上面那个函数,这样调用完全没问题,不会出错。
————————————————Mainactivity类------------------------------------------------------------- 展开
我使用了几个imageview做了一个菜单,为了增加代码的可读性。我将几个imageview写成一个
类。问题出现在这个构造函数里。一调用这个构造函数就出错。
———————————Menu类-———————————————————————————
————————————————Mainactivity类-------------------------------------------------------------
而我注释掉Menu的构造函数,然后直接默认的构造函数初始化,在Mainactivity中写上上面那个函数,这样调用完全没问题,不会出错。
————————————————Mainactivity类------------------------------------------------------------- 展开
展开全部
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类的
/**
* 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的源码
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询