ArrayAdapter in Fragment - Android
J'obtiens une erreur que je ne sais pas pourquoi. Je suis le remplissage de ListView avec adaptateur tableau de chaîne de caractères dans le fragment. Je suis l'aide de ce fragment à l'écran principal pour être montré à l'activité principale
C'est mon code
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;
}
}
J'obtiens cette erreur de sortie:
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
source d'informationauteur KiKo | 2014-09-18
Vous devez vous connecter pour publier un commentaire.
lvHomePage
doit être null. UtilisationlvHomePage = (ListView) view.findViewById(R.id.lvHomePage);
à la place.Essayer de cette façon,
Le problème est dans
lvHomePage = (ListView) getActivity().findViewById(R.id.lvHomePage);
c'est faux, vous devriez obtenir la vue de la racine est
view
pas l'activitédonc, il devrait être comme ceci
lvHomePage = (ListView) view.findViewById(R.id.lvHomePage);