NullPointException beim Custom Adapter?

  • 5 Antworten
  • Neuester Beitrag
Diskutiere NullPointException beim Custom Adapter? im Android App Entwicklung im Bereich Betriebssysteme & Apps.
B

Binbose

Ambitioniertes Mitglied
Hallo Leute,

ich sitze jetzt schon seit 2 Tagen daran meine ListView mit einem eigenen Layout mit einem Custim Adapter zu füllen, bekomme aber immer eine NullPointException und finde meinen Fehler einfach nicht.:unsure:
Ich mache das mit den Custom Adaptern zum ersten mal, also seid bitte nicht zu hart, falls es ein einfacher Dumbatz Fehler ist^^
Hoffentlich könnt ihr mir helfen, hier mein Layout für die Listeneinträge:

HTML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <CheckBox
            android:id="@+id/checkBox1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="CheckBox" />

    </RelativeLayout>

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="35dp"
        android:text="Text View"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    
    </LinearLayout>
und hier der Code für die Activite mit Custom Adapter:

Code:
public class MeineActivity extends ListActivity{
    private MeineDataSource datasource;
    
    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mein_layout);
        
        datasource = new MeineDataSource(this);
        datasource.open();                                      //Datenbankverbindung erstellen
        
        ArrayList<MeinDataModel> values = new ArrayList<MeinDataModel>();
        values = datasource.getAllEntries();  //Datenbankeinträge werden in Objekte der Klasse MeinDataModel gepackt
        
        MeinAdapter adapter = new MeinAdapter(this,
                values);
            setListAdapter(adapter);
        getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    }
    
     protected void onResume() {
            datasource.open();
            super.onResume();
          }
     
     protected void onPause() {
            datasource.close();
            super.onPause();
          }
    
     
    
    public void onClickSpeichern(final View view){
        
        //Datenbank aktualisieren 
        
        final Intent i = new Intent(this, MainActivity.class);
        startActivity(i);
        
    }
    
    
    //Eigener Adapter
    
    public class MeinAdapter extends ArrayAdapter {
        private final Context context;
          private final ArrayList<MeinDataModel> values;
          
    
        public MeinAdapter(Context context, ArrayList<MeinDataModel> values){
              super(context, R.layout.mein_eintrag_layout, values);
              this.values = values;
              this.context = context;
          }
          
          @Override
          public View getView(int position, View convertView, ViewGroup parent){
              LayoutInflater inflater = (LayoutInflater) context
                        .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
              View listenEintrag = inflater.inflate(R.layout.mein_eintrag_layout, parent, false);
              CheckBox checkbox = (CheckBox) findViewById(R.id.checkBox1);
              checkbox.setText(values.get(position).getName());
              TextView textview = (TextView) findViewById(R.id.tv1);
              textview.setText(values.get(position).getNummer());
              
              
              return listenEintrag;
              
          }
        
    }

}
Danke schonmal im Vorraus,

mfg Binbose
 
G

Gastuser

Ambitioniertes Mitglied
die exakte NuPoEx wäre hilfreich und evtl. noch der Code von deinem Adapter. So ist es schwer zu sehen was vermutlich Null ist.
 
B

Binbose

Ambitioniertes Mitglied
Der Adapter ist ja als innere Klasse im Code unten.
Die Fehlermeldung ist:


07-11 04:17:37.932: W/EGL_emulation(1051): eglSurfaceAttrib not implemented
07-11 04:17:41.912: W/EGL_emulation(1051): eglSurfaceAttrib not implemented
07-11 04:17:42.162: W/dalvikvm(1051): threadid=1: thread exiting with uncaught exception (group=0xb3a2cba8)

07-11 04:17:42.262: E/AndroidRuntime(1051): FATAL EXCEPTION: main
07-11 04:17:42.262: E/AndroidRuntime(1051): Process: com.example.stoos, PID: 1051
07-11 04:17:42.262: E/AndroidRuntime(1051): java.lang.NullPointerException
07-11 04:17:42.262: E/AndroidRuntime(1051): at com.example.stoos.MeineActivity$MeinAdapter.getView(MeineActivity.java:84)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.AbsListView.obtainView(AbsListView.java:2263)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.ListView.makeAndAddView(ListView.java:1790)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.ListView.fillDown(ListView.java:691)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.ListView.fillFromTop(ListView.java:752)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.ListView.layoutChildren(ListView.java:1630)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.AbsListView.onLayout(AbsListView.java:2091)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.View.layout(View.java:14817)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.ViewGroup.layout(ViewGroup.java:4631)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.View.layout(View.java:14817)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.ViewGroup.layout(ViewGroup.java:4631)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.View.layout(View.java:14817)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.ViewGroup.layout(ViewGroup.java:4631)
07-11 04:17:42.262: E/AndroidRuntime(1051): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:374)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.View.layout(View.java:14817)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.ViewGroup.layout(ViewGroup.java:4631)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.View.layout(View.java:14817)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.ViewGroup.layout(ViewGroup.java:4631)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1987)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1744)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.Choreographer.doFrame(Choreographer.java:544)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.os.Handler.handleCallback(Handler.java:733)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.os.Handler.dispatchMessage(Handler.java:95)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.os.Looper.loop(Looper.java:136)
07-11 04:17:42.262: E/AndroidRuntime(1051): at android.app.ActivityThread.main(ActivityThread.java:5017)
07-11 04:17:42.262: E/AndroidRuntime(1051): at java.lang.reflect.Method.invokeNative(Native Method)
07-11 04:17:42.262: E/AndroidRuntime(1051): at java.lang.reflect.Method.invoke(Method.java:515)
07-11 04:17:42.262: E/AndroidRuntime(1051): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
07-11 04:17:42.262: E/AndroidRuntime(1051): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
07-11 04:17:42.262: E/AndroidRuntime(1051): at dalvik.system.NativeStart.main(Native Method)
 
DieGoldeneMitte

DieGoldeneMitte

Experte
Was ist denn in Zeile 84?

Was du mit values machst, ist auch irgendwie komisch. Erst instantiierst du ein Array und dann weist du der Variable getAllEntries() zu. Würde jetzt tippen, dass deine Datasource null liefert.
 
S

swordi

Lexikon
du musst

listenEintrag.findviewbyid

sonst wird an der falschen stelle gesucht
 
B

Binbose

Ambitioniertes Mitglied
Ahhhh :scared: swordi ich danke dir hundertmal, das wars, jetzt funktioniert alles
 
Ähnliche Themen - NullPointException beim Custom Adapter? Antworten Datum
2
3
1