我是Java和Android的新手。我有一段代码可用于多种活动,因此我将其移到了自己的库.java文件中。但是,现在我的findViewById返回null,当它们成为具有onCreate()和setContentView()调用的主Activity文件的一部分时,它们用于返回正确的内容。如何使其在图书馆内工作?

从Activity类调用:

helper.popupControl(getListView(),getBaseContext(),“ on”);

库中的代码:

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();
    }
}
}

最佳答案

呼叫Activity.setContentView(int resID)之前先呼叫findViewbyId()

07-26 07:46