java运行时异常

时间:2011-05-09 06:07:47

标签: android

TextView txtOtherMatches = (TextView) dialog.findViewById(R.id.txtOtherMatches);
txtOtherMatches.setText("Other Matches");

运行应用程序时出现此错误,我只是在运行时将简单文本分配给Textview ..... 显示java.lang.NullPointerException

3 个答案:

答案 0 :(得分:0)

txtOtherMatches可能是null,因为它在当前视图中不存在。当您使用findViewById时,视图必须位于您使用{{{{1}设置的“contentview”中1}},或稍后添加到视图中。您找不到任何具有ID的“随机”视图,它必须在您当前的视图中“存在”。

如果视图不在您正在使用的xml中,而是在您的某个xml中的其他位置,则必须使用setContentView来获取视图,并使用inflater <添加它/ p>

答案 1 :(得分:0)

  1. 确保xml中的T​​extView具有完全相同的ID:android:id="@+id/txtOtherMatches"
  2. 检查您是否没有多个res/layout文件夹(例如layout-normallayout-largelayout-land),如果确实如此,请确保TextView存在于与您的设备/模拟器对应的layourt中
  3. 检查它是否已添加到当前视图(最有可能是通过某些ViewGroup
  4. 如果其他一切都失败了,请清理Eclipse项目并重建

答案 2 :(得分:0)

如果你在那之前再提供几行,那将会很有帮助。 但我的猜测是Nanne是对的。

尝试添加安全检查: (这不会改变代码流程)

if(txtOtherMatches == null) {
  throw new NullPointerException("darn, the R.id.txtOtherMatches is not in the dialog")
}

(另一方面,Nanne错误地提到'当前观点',而我确信他的意思是'对话'观点。 如果你需要进一步的帮助,可以多放些肉;)