Android NullPointer错误片段自定义类?

时间:2012-07-16 18:31:12

标签: android android-fragments

Java和Android编程相对较新,任何人都可以帮助我获得NullPointerException的原因吗?

 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 个答案:

答案 0 :(得分:4)

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

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

同时

 @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 :(得分:0)

此外,您无法在onCreateView中使用getView(),因为您正在访问的视图尚未创建。所以你应该这样做:

View view = inflater.inflate(R.layout.dpsfrag,container,false);

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

tv.setText( “你好”);

返回视图;