我有这段代码,有人知道为什么我在手机上编译时出错了吗?
public void onSectionAttached(int number) {
TextView textView = (TextView) findViewById(R.id.textView1);
textView.setVisibility(View.VISIBLE);
switch (number) {
case 1:
mTitle = getString(R.string.title_section1);
break;
case 2:
mTitle = getString(R.string.title_section2);
textView.setVisibility(View.GONE);
break;
case 3:
mTitle = getString(R.string.title_section3);
textView.setVisibility(View.GONE);
break;
}
}
编辑:This是我得到的错误,它在setVisibitily行上出错了。
答案 0 :(得分:2)
下次请将相关日志附加到您的问题中。它使事情变得如此简单......
无论如何,我在代码中看到的唯一错误原因是:
A。 textView.setVisibility()是从UI线程以外的线程调用的。如果是这种情况,请做一些类似解决问题的事情:
myActivity.runOnUiThread(new Runnable() {
public void run() {
onSectionAttached(num);
}
});
B。在激活此代码之前,您没有在布局中调用setContentView()。
C。您的布局不包含名为textView1的TextView元素。在这种情况下,findViewById()将返回null,textView.setVisibility()将导致NPE。