2012-07-16 60 views
0

Java和Android编程相对比较新,任何人都可以帮助我为什么得到NullPointerExceptionAndroid NullPointer错误片段自定义类?

public class DpsFragment extends Fragment { 
    Weapon weppy; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

      weppy.setMaxdmg(200); 
      weppy.setMindmg(100); 
      TextView tv= (TextView) getView().findViewById(R.id.textView1); 
      tv.setText("hello"); 


      return inflater.inflate(R.layout.dpsfrag, container, false); 

     } 

    public class Weapon { 
    private int mindmg; 
    private int maxdmg; 


    public Weapon(int mindmg, int maxdmg) { 
    this.setMindmg(mindmg); 
    this.setMaxdmg(maxdmg); 
    } 


    public int getMindmg() { 
    return mindmg; 
    } 


    public void setMindmg(int mindmg) { 
    this.mindmg = mindmg; 
    } 


    public int getMaxdmg() { 
    return maxdmg; 
    } 


    public void setMaxdmg(int maxdmg) { 
    this.maxdmg = maxdmg; 
} 
}} 

非常简单的代码,我知道,但我不知道我哪里出错了?谢谢你的帮助 。

+2

将来,如果您抛出任何类型的异常,您应该发布日志而不是只发布异常的名称。你的日志将指向一个特定的代码行,它最终会对你和任何试图帮助你的人有用。 – adneal 2012-07-16 18:33:06

回答

4

weppy is null so NPE ...我想你忘了初始化它。

可能weppy = new Weapon(mindmg,maxdmg);

ALSO

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     weppy = new Weapon(100,200); <<<<<<See here 

     TextView tv= (TextView) getView().findViewById(R.id.textView1); 
     tv.setText("hello"); 


     return inflater.inflate(R.layout.dpsfrag, container, false); 

    } 
+1

谢谢。哎呀,这是一个痛苦的业余错误 – user1517592 2012-07-16 18:50:25

0

而且你,因为你正在访问的观点没有被创建无法里面onCreateView使用getView()。所以你应该这样做:

查看视图= inflater.inflate(R.layout.dpsfrag,container,false);

TextView tv =(TextView)view.findViewById(R.id.textView1);

tv.setText(“hello”);

return view;