JAVAlang.NullPointerException:尝试调用虚拟方法“安卓”。看法查看安卓。应用程序。活动空对象引用上的findViewById(int)“”
我的Android项目总是出错
java.lang.NullPointerException: Attempt to invoke virtual method '安卓.view.View 安卓.app.Activity.findViewById(int)' on a null object reference
在我的主要活动中,我称这个类为FragmentStart
碎片开始。班级
import 安卓.app.Activity;
import 安卓.content.Intent;
import 安卓.os.Bundle;
import 安卓.support.v4.app.Fragment;
import 安卓.view.LayoutInflater;
import 安卓.view.View;
import 安卓.view.ViewGroup;
import 安卓.widget.AdapterView;
import 安卓.widget.ArrayAdapter;
import 安卓.widget.Button;
import 安卓.widget.ListView;
public class FragmentStart extends Fragment {
//Define Listview
private ListView startList;
private String[] stringList;
Activity activity = getActivity();
public FragmentStart() {
//
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_start, container, false);
// Create ListView start
startList = (ListView) rootView.findViewById(R.id.startList);
stringList = getResources().getStringArray(R.array.startList);
if (activity != null) {
ArrayAdapter<String> objAdapter = new ArrayAdapter<String>(activity, 安卓.R.layout.simple_list_item_1, stringList);
startList.setAdapter(objAdapter);
startList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (startList.getPositionForView(view)) {
case 0:
// ...
break;
}
}
});
}
// Create ListView end
//New Entry
Button add = (Button) activity.findViewById(R.id.add);
add.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(), addItem.class);
startActivityForResult(myIntent, 0);
}
});
return rootView;
}
}
# 1 楼答案
出现此错误的原因是,在片段具有父活动之前,将
getActivity()
赋值给活动变量。如果愿意,您可以在onAttach()
中完成# 2 楼答案
# 3 楼答案
使用以下代码:
# 4 楼答案
除了@Selvin指出的以外,它看起来是这样的:
。。。应改为: