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;
}
}}
非常简单的代码,我知道,但我不知道我哪里出错了?谢谢你的帮助。
答案 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( “你好”);
返回视图;