10

मुझे कुछ त्रुटि मिलती है, मुझे नहीं पता कि क्यों। मैं खंड में स्ट्रिंग से सरणी एडाप्टर के साथ ListView populating हूँ।फ्रैगमेंट में ऐरेएडाप्टर - एंड्रॉइड

09-18 21:07:27.315: E/AndroidRuntime(3839): FATAL EXCEPTION: main 
09-18 21:07:27.315: E/AndroidRuntime(3839): Process: com.kiko.bmgu.crnobelo, PID: 3839 
09-18 21:07:27.315: E/AndroidRuntime(3839): java.lang.RuntimeException: Unable to start activity ComponentInfo  com.kiko.bmgu.crnobelo/com.kiko.bmgu.crnobelo.activities.MainActivity}: java.lang.NullPointerException 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)\ 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.ActivityThread.access$800(ActivityThread.java:135) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.os.Handler.dispatchMessage(Handler.java:102) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.os.Looper.loop(Looper.java:136) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at java.lang.reflect.Method.invokeNative(Native Method) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at java.lang.reflect.Method.invoke(Method.java:515) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at dalvik.system.NativeStart.main(Naive Method) 
09-18 21:07:27.315: E/AndroidRuntime(3839): Caused by: java.lang.NullPointerException 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at com.kiko.bmgu.fragments.HomePage.onCreateView(HomePage.java:25) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.Fragment.performCreateView(Fragment.java:1700) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.BackStackRecord.run(BackStackRecord.java:684) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.Activity.performStart(Activity.java:5240) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2168) 
09-18 21:07:27.315: E/AndroidRuntime(3839):  ... 11 more 

उत्तर

7

lvHomePage बातिल होना चाहिए: मैं इस टुकड़ा उपयोग कर रहा हूँ के रूप में मुख्य स्क्रीन मुख्य गतिविधि में दिखाई जाने वाली यह मेरा कोड

public class HomePage extends Fragment { 

private ListView lvHomePage; 
private String[] items; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_home_page, container, false); 

    items = getActivity().getResources().getStringArray(R.array.test); 
    lvHomePage = (ListView) getActivity().findViewById(R.id.lvHomePage); 

    lvHomePage.setAdapter(new ArrayAdapter<String>(getActivity().getApplicationContext(), 
    android.R.layout.simple_list_item_1 , items)); 

    return view; 
} 
} 

मैं इस उत्पादन त्रुटि मिलती है। इसके बजाय lvHomePage = (ListView) view.findViewById(R.id.lvHomePage); का उपयोग करें।

2

समस्या है lvHomePage = (ListView) getActivity().findViewById(R.id.lvHomePage); कि गलत आप रूट दृश्य प्राप्त करना चाहिए भीतर view गतिविधि नहीं इसलिए यह इस

lvHomePage = (ListView) view.findViewById(R.id.lvHomePage);

4

की तरह होना चाहिए की कोशिश करो इस तरह

private ListView lvHomePage; 
    private String[] items; 
    private View view; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_home_page, container, false); 

    return view; 
} 

@Override 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

    items = view.getResources().getStringArray(R.array.test); 
    lvHomePage = (ListView) view.findViewById(R.id.lvHomePage); 

    lvHomePage.setAdapter(new ArrayAdapter<String>(view.getContext(), 
    android.R.layout.simple_list_item_1 , items)); 
    ... 
} 
+0

AIL के रूप में है कहा, मुझे एक्टिविटी() के बजाय दृश्य का उपयोग करना चाहिए – KiKo

संबंधित मुद्दे