我是Java和Android的新手。我有一段用于多个活动的代码,因此我将其移动到自己的库.java文件中。但是,现在我的findViewById返回null,当他们使用onCreate()和setContentView()调用它们是主Activity文件的一部分时,它们返回正确的东西。如何让它在我的图书馆内工作?
从Activity类调用:
helper.popupControl(getListView(),getBaseContext(),“on”);
libruary中的代码:
public class Helper extends ListActivity {
public void popupControl (View v, Context context, String on_off) {
Animation aFilm = AnimationUtils.loadAnimation(context, R.anim.fade_in);
aFilm.reset();
View vFilm = (View) v.findViewById(R.id.gray_out_film);
if(vFilm==null) {
Toast maxToast = Toast.makeText(context, "View is null! "+R.id.gray_out_film+", View:"+v.toString(), Toast.LENGTH_LONG);
maxToast.setGravity(Gravity.CENTER, 0, 0);
maxToast.show();
} else {
Toast maxToast = Toast.makeText(context, "View is not null!", Toast.LENGTH_SHORT);
maxToast.setGravity(Gravity.CENTER, 0, 0);
maxToast.show();
}
}
}
答案 0 :(得分:1)
在致电Activity.setContentView(int resID)
findViewbyId()
答案 1 :(得分:0)
你想做的事情似乎'icky'但是这是如何做的。
您需要从活动中传递View
... findViewbyId()是其成员函数。
如果您提供一些示例代码,我可能会更有帮助。
修改:与Context
混淆View
。糟糕!
答案 2 :(得分:0)
这发生在我身上,解决方法是从新项目中删除main.xml。不知怎的,它干扰了库项目中的main.xml,即使我指的是完全限定名称(例如:library.package.R.layout.main)。