Android NullPointer错误片段自定义类?
问题描述:
Java和Android编程相对比较新,任何人都可以帮助我为什么得到NullPointerException
?Android 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;
}
}}
非常简单的代码,我知道,但我不知道我哪里出错了?谢谢你的帮助 。
答
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
答
而且你,因为你正在访问的观点没有被创建无法里面onCreateView使用getView()。所以你应该这样做:
查看视图= inflater.inflate(R.layout.dpsfrag,container,false);
TextView tv =(TextView)view.findViewById(R.id.textView1);
tv.setText(“hello”);
return view;
将来,如果您抛出任何类型的异常,您应该发布日志而不是只发布异常的名称。你的日志将指向一个特定的代码行,它最终会对你和任何试图帮助你的人有用。 – adneal 2012-07-16 18:33:06