这是我面对异常的代码
public class SHOSuper extends Activity{
String officerName;
String arr[];
String[] offN;
public void onCreate(Bundle savedInstanceState) {
try{
super.onCreate(savedInstanceState);
final TextView tv;
tv=(TextView)findViewById(R.id.txt1);
System.out.println("I AM NEW ACTIVITY");
arr=Receiver.split(Receiver.orignal, ",");
String value1= arr[1];
System.out.println("Array index " + value1);
String value2=arr[2];
System.out.println("Array 2nd index " + value2);
tv.setText(value1 + " At " + value2);
officerName= arr[5];
offN =new String[officerName.length()];
offN=Receiver.split(officerName, "_");
}
catch(Exception e){
e.printStackTrace();
}
setContentView(R.layout.main);
}
}
在线tv.setText(value1 + " At " + value2);
我面对Null指针Exception就像这样
**04-12 13:25:18.105: WARN/System.err(527): java.lang.NullPointerException
04-12 13:25:18.265: WARN/System.err(527): at com.sho.SHOSuper.onCreate(SHOSuper.java:24)**
你能帮帮我吗?
答案 0 :(得分:7)
findViewById()
在您当前的contentView
中找到该视图,而不是xml中的随机ID。
所以当你这样做时:
tv=(TextView)findViewById(R.id.txt1);
即使您的layout.main
中有ID,也无法找到该ID:布局尚未设置。在尝试查找任何视图之前,请先致电setContentView(R.layout.main);
。
(您还可以使用inflater
获取“随机”视图,然后将其添加到另一个视图中,但这似乎不是您要查找的内容)
答案 1 :(得分:2)
在执行setContentView(R.layout.main);
tv=(TextView)findViewById(R.id.txt1);
答案 2 :(得分:1)
调用此函数
setContentView(R.layout.main)
之前打电话
tv=(TextView)findViewById(R.id.txt1);
因为findViewById()在setContentView()
设置的视图层次结构中搜索答案 3 :(得分:0)
看来
tv=(TextView)findViewById(R.id.txt1);
返回null