我正在設置一個基本的ArrayAdapter。當我旋轉屏幕幾次時,我得到一個空指針異常。android-init arrayadapter,得到一個空指針異常
public void testListView(){
my_array_list.add("hello world 1");
my_array_list.add("hello world 2");
my_array_list.add("hello world 3");
//next line does the problem
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, my_array_list);
mListView.setAdapter(arrayAdapter);
}
這是我onCreateView()
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.developer_test_side, container, false);
...
my_array_list = new ArrayList<>();
mListView = (ListView) v.findViewById(R.id.my_listview);
testListView();
}
這裏是logcat的輸出:
04-27 20:10:45.985 11813-11813/com.rivler.example E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.rivler.example, PID: 11813
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
at android.widget.ArrayAdapter.init(ArrayAdapter.java:310)
at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:153)
at com.example.rivler.DeveloperTestSide.testListView(DeveloperTestSide.java:116)
at com.example.rivler.DeveloperTestSide$6.run(DeveloperTestSide.java:149)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5312)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
可能是什麼問題呢?
getActivity返回null,因爲您的方法在線程中調用,而不考慮片段被連接與否。 – njzk2
可能重複[什麼是NullPointerException,以及如何解決它?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it ) –