使用findViewById()找不到视图

我通过调用findViewById()找不到TextView ,即使ID确实存在。

OtherActivity

 public class OtherActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { TextView textView = (TextView)findViewById(R.ID.txt02); super.onCreate(savedInstanceState);//line 5 setContentView(R.layout.other_activity); //textView.setText(ACCESSIBILITY_SERVICE); Button button = (Button)findViewById(R.ID.otherActivity_Btn); button.setText(R.string.otherActivityBtn); button.setOnClickListener(new GoBackBtnListener(this)); } class GoBackBtnListener implements OnClickListener { OtherActivity other = null; public GoBackBtnListener(OtherActivity p_other) { other = p_other; } public void onClick(View v) { Intent intent = new Intent(); intent.setClass(other, Activity01Activity.class); other.startActivity(intent); } } } 

我在第5行添加了断点,并以调试模式启动了项目。 当它在断点处停止时,我将鼠标移动到variablestextView ,它为null。

other_activity布局:

    

AndroidManifest.xml

              

生成的R.java类:

 public final class R { public static final class ID { public static final int Activity01_btn=0x7f050001; public static final int otherActivity_Btn=0x7f050003; public static final int txt01=0x7f050000; public static final int txt02=0x7f050002; } public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class layout { public static final int main=0x7f030000; public static final int other_activity=0x7f030001; } public static final class string { public static final int app_name=0x7f040001; public static final int hello=0x7f040000; public static final int other=0x7f040002; public static final int otherActivityBtn=0x7f040003; } } 

我认为不应该findTextView ,但为什么variablestextView null?

在尝试查找任何UI组件之前,必须调用setContentView(...) 。 您在调用之前尝试findTextView

将您的代码更改为此…

 super.onCreate(savedInstanceState); setContentView(R.layout.other_activity); TextView textView = (TextView)findViewById(R.id.txt02); 

改变你的代码::

  TextView textView = (TextView)findViewById(R.id.txt02); 

没有像“ID”这样的大写字母

主要:

   

我实际上只是遇到了这个问题,这是因为现在自动检查了构建。 只需手动构建项目或自动单击构建,这应该可以解决您的问题!

您必须确保在创建活动时已生成TextView元素。

最有可能的是,如果它是一个Menu元素,则必须在onCreateOptionsMenu()回调上调用findViewById方法,而不是在Oncreate()回调上调用。