2012-09-02 59 views
0

我收到了市场上的应用程序出现错误,显示在对话框中的TextView中。该错误是对话框对象的Nullpointer异常

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 
} 
... 

我的问题是

  1. 是否好到申报的对象(如果TextView的)这里,局部和不在全球范围外TextView dialogtext2;并只写在这里dialogtext2 = (TextView) dialog.findViewById (R.id.tvCBTresult2);?

  2. 我有4个密度为4的文件夹:layout-ldpi,layout-mdpi,layout-hdpi,layout-xhdpi。 layout-xhdpi文件夹中的xml不包含dialogtext2 TextView。这可能导致错误?当另一个密度文件夹中的相同xml中缺少一个对象时,android是否不应用另一个密度文件夹中的xml?

还有什么可以成为错误的根源?

回答

0

如果您在那里使用findViewById(),没有问题。但是,似乎R.id. tvCBTresult2是不是在您使用的布局(R.layout.cbtdialog

在布局xhdpi文件夹中的XML不包括dialogtext2 TextView的。这可能导致错误?

这可能问题由于Android找不到dialigtext2(您使用的设备与xhdpi屏幕。

不从的android另一个文件夹中密度应用的XML对象缺失时从另一个文件夹的密度相同的XML?

其实,Android提供的其他文件夹中搜索时,该文件无法找到(不是一个单一的元素)。