0

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

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

4

2 回答 2

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);

    }
于 2012-07-16T18:32:40.067 回答
0

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

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

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

tv.setText("你好");

返回视图;

于 2012-12-12T11:30:48.090 回答