我从市场上的一个应用程序中收到一个错误消息,发送到对话框中的 TextView。错误是
java.lang.NullPointerException
at com.b2creativedesigns.eyetest.ColorBlindTest1$2.onClick(ColorBlindTest1.java:324)
部分代码为:
btnNext1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
GlobalVars.setPoints(points);
dialog = new Dialog(ColorBlindTest1.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.cbtdialog);
TextView dialogtext = (TextView) dialog.findViewById (R.id.tvCBTresult);
TextView dialogtext2 = (TextView) dialog.findViewById (R.id.tvCBTresult2);
Button btnQuit = (Button) dialog.findViewById (R.id.btnCTBback);
Button btnFB = (Button) dialog.findViewById (R.id.btnCBTFB);
Button btnMarket = (Button) dialog.findViewById (R.id.btnCBTMarket);
if (points >= 14)
{
dialogtext.setText("Your result is " + points + "/15!");
dialogtext.setTextColor(Color.rgb(19, 20, 111));
dialogtext2.setText("Something"); //error line
}
...
我的问题是
可以在本地声明对象(如果是TextView),而不是全局声明对象(如果是TextView),而不是全局声明
TextView dialogtext2;
,只写在这里dialogtext2 = (TextView) dialog.findViewById (R.id.tvCBTresult2);
?
我有 4 个用于 4 密度的文件夹:layout-ldpi、layout-mdpi、layout-hdpi、layout-xhdpi。layout-xhdpi 文件夹中的 xml 不包含 dialogtext2 TextView。这会导致错误吗?当另一个密度文件夹中的相同 xml 中缺少一个对象时,android 是否不会应用另一个密度文件夹中的 xml?
还有什么可能是错误的根源?