我对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;
}
}}非常简单的代码,我知道,但我不知道我哪里出错了?谢谢你的帮助。
发布于 2012-07-17 02:32:40
所以NPE ...i认为你忘了初始化它。
可能是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-12-12 19:30:48
此外,您不能在onCreateView中使用getView(),因为您要访问的视图尚未创建。所以你应该这样做:
View view = inflater.inflate(R.layout.dpsfrag,container,false);
TextView tv= (TextView) view.findViewById(R.id.textView1);
tv.setText("hello");
返回视图;
https://stackoverflow.com/questions/11510351
复制相似问题