FATAL EXCEPTION - NullPointerException

C

Cyber-Enterprise

Neues Mitglied
0
Hallo liebe Community.

Ich versuche grad in mein Fragment ne ListView einzufügen und beim Click auf ein Item ein anderes Fragment zu öffnen
Aber mir wird irgendwie ein NullPointerException ausgelöst & ich weiß nicht woher, kanns mir auch nicht erklären. Der Fehler sagt ja, dass irgend etwas Null zurück gibt aber alles hat ein wert hmm.. vielleicht seh ich ja auch den Wald vor Bäumen nicht & ihr könnt mir vielleicht behilfich sein.

onCreateView
Code:
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        ViewGroup root = (ViewGroup) inflater.inflate(R.layout.formelsammlung_hs_layout, null);


        drawerList = (ListView) root.findViewById(R.id.lvFormeln);
        ArrayAdapter<String> drawerListAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, listArray);
        drawerList.setAdapter(drawerListAdapter);
        Drawer = (DrawerLayout) root.findViewById(R.id.dlDrawerlayout);

        f1 = (hs_formeln) android.support.v4.app.Fragment.instantiate(getActivity(), hs_formeln.class.getName(), null);;

        drawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                switch (drawerList.getPositionForView(view)) {

                    case 0:

                        fmanager = getFragmentManager();
                        ftrans = fmanager.beginTransaction();
                        ftrans.replace(rlContent, f1);
                        ftrans.commit();
                        Drawer.closeDrawers();
                        break;

                }
            }});

        return root;
    }

benötigten Variablen
Code:
public ListView drawerList;

    public android.support.v4.app.FragmentManager fmanager;
    public android.support.v4.app.FragmentTransaction ftrans;
    private DrawerLayout Drawer;

    public hs_formeln f1;

    public String[] listArray= {"Flächen","Körper","Pythagoras","Prozentrechnung","Zinsrechnung","Bruchrechnung"};

logcat
Code:
01-28 09:17:49.273  12580-12580/de.example.virtualsec.mathbot E/AndroidRuntime FATAL EXCEPTION: main
    java.lang.NullPointerException
            at de.example.virtualsec.mathbot.formelsammlung_hs$1.onItemClick(formelsammlung_hs.java:66)
            at android.widget.AdapterView.performItemClick(AdapterView.java:301)
            at android.widget.AbsListView.performItemClick(AbsListView.java:1508)
            at android.widget.AbsListView$PerformClick.run(AbsListView.java:3293)
            at android.widget.AbsListView$1.run(AbsListView.java:4554)
            at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:176)
            at android.app.ActivityThread.main(ActivityThread.java:5365)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
            at dalvik.system.NativeStart.main(Native Method)
 
Um vielleicht noch dazu zu sagen, ka ob das wichtig ist, das hier ist die Fragment2 und von hier aus wollte ich dan fragment 3 laden/öffnen. Erhalte jedoch ein NullpointerException
 
Welche Zeile in dem Code ist denn Zeile 66?

Aus dem Bauch heraus würde ich darauf tippen, dass Drawer (Foul! Variablennamen besser klein schreiben!) null ist, weil es im infateten layout die ID dlDrawLayout nicht gibt.
 
  • Danke
Reaktionen: Cyber-Enterprise
Ja, habe es nun gefunden. Hatte vergessen den Drawer zu setzten. oh wie peinlich ._.
haha, vielen Dank :D

Eine frage hätte ich noch.
In mien Fragment1 hab ich eine ListView der bei der Auswahl zu Fragment2 lädt.

We kann ich jetzt mein Fragment2 sagen, dass im ListView im Fragment1 auf ItemX gedrückt wurde, um die entsprechenden daten für ItemX in Fragment2 zu laden?
den so müsste ich nicht für jeden Element in der ListView in fragment1 eine neue Klasse & ein neues Layout anlegen sondern könnte halt nur die gewünschten Daten in Fragment2 ladenn aber weiß halt noch nicht wie ich das angehen soll
Hättest du da vielleicht auch noch ein Tipp für mich? :x

Der ursprüngliche Beitrag von 14:53 Uhr wurde um 15:44 Uhr ergänzt:

Ich habe es schon mit Intent versucht jedoch wird mir da immer "null" geliefert

fragment1.java
Code:
drawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                switch (drawerList.getPositionForView(view)) {

                    case 0:



                        Drawer = (DrawerLayout) getActivity().findViewById(R.id.dlDrawerlayout);
                        fmanager = getFragmentManager();
                        ftrans = fmanager.beginTransaction();

                        String s = "Formeln";
                        Intent i = new Intent(getActivity(),  hs_formeln.class);
                        i.putExtra("name", s);

                        ftrans.addToBackStack("addc");
                        ftrans.replace(rlContent, f1);
                        ftrans.commit();

                }
            }});

So (versuche es zumindest) sende ich die Daten.

Code:
String s = "Formeln";
                        Intent i = new Intent(getActivity(),  hs_formeln.class);
                        i.putExtra("name", s);

& will sie in der gebrauchten klasse aufrufen

fragment2.java
Code:
 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
    {

    ViewGroup root = (ViewGroup) inflater.inflate(R.layout.hs_formeln_layout, null);

    Intent i = getActivity().getIntent();
    String name = i.getStringExtra("name");
    tv = (TextView) root.findViewById(R.id.textView20);
    tv.setText("" + name);



    return root;


}

aber mir wird im TextView dan immer "null" angezeigt
 
ähm, du baust in fragment1 einen Intent, machst aber nix mit ihm.
Wie soll fragment2 von diesem Intent erfahren haben? :D
 

Ähnliche Themen

L
  • LHomme
Antworten
1
Aufrufe
1.166
jogimuc
J
R
Antworten
1
Aufrufe
993
swa00
swa00
W
Antworten
11
Aufrufe
1.416
washpuda
W
Zurück
Oben Unten