Android ListView addHeaderView () nullPointerException für vordefinierte Ansichten, die in XML definiert sind

Sie versuchen, addHeaderView() und addFooterView() für eine ListView . Wenn ich versuche, eine Ansicht zu verwenden, die ich in XML für die Kopf- oder Fußzeile vordefiniert habe, bekomme ich eine Null-Pointer-Ausnahme. Allerdings, wenn ich dynamisch eine Ansicht mit Code erstellen, funktioniert es gut …

 // This doesn't work... nullPointerException ListView lv = (ListView) findViewById(R.id.my_list_view); TextView header = (TextView) findViewById(R.id.my_header); lv.addHeaderView(header); // This works fine ListView lv = (ListView) findViewById(R.id.my_list_view); TextView header = new TextView(this); TextView.setHeight(30); TextView.setText("my header text!"); lv.addHeaderView(header); 

Meine Stapelspur:

  • Was ist die Bedeutung des Logs aus dem Tag: "szipinf" und Text: "Initializing inflate state" von Logcat
  • DialogFragment-Set Höhe von Dialog
  • RelativeLayout-Höhe, um den restlichen Platz zu füllen
  • Android Studio und MonkeyTalk?
  • Android Vollbild-Dialog Bestätigung und abweisenden Aktionen
  • GetWidth () und getHeight () von View gibt 0 zurück
  •  Caused by: java.lang.NullPointerException at android.widget.ListView.clearRecycledState(ListView.java:522) at android.widget.ListView.resetList(ListView.java:508) at android.widget.ListView.setAdapter(ListView.java:440) at com.company.myapp.MyActivity.refreshList(MyActivity.java:85) at com.company.myapp.MyActivity.onCreate(MyActivity.java:37) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) ... 11 more 

    Irgendwelche Hinweise?

  • UnManaged Option nicht verfügbar in Google Play-Entwickler-Konsole
  • Zwei SearchViews in einer Aktivität und Bildschirmrotation
  • Android 6.0 - externe Speicherdateien werden bei der App deinstalliert gelöscht
  • So erstellen Sie einen Kontakt programmgesteuert
  • Installieren eines x86-Bildes in neuen sdk-Tools v12
  • Unterschied zwischen FragmentPagerAdapter und FragmentStatePagerAdapter
  • One Solution collect form web for “Android ListView addHeaderView () nullPointerException für vordefinierte Ansichten, die in XML definiert sind”

    BEARBEITEN:

    Sie können einfach nicht tun

     View header = findViewById(R.layout.headerView); lst.addHeaderView(header); 

    Dies wird nicht funktionieren, weil die Ansicht, die eingegangen has to be inflated . In einer Nussschale, wenn Sie setContentView zu Beginn Ihrer Aktivität das Android-Framework automatisch aufblasiert die Ansicht und setzt es zu verwenden . Um deine Kopfzeile aufzublasen, alles was du tun musst ist

     View header = (View)getLayoutInflater().inflate(R.layout.headerView,null); ls.addHeaderView(header); 

    Schließlich fügen Sie Ihren Adapter hinzu, nachdem Sie die Kopfzeile gesetzt haben und die Anwendung ausführen. Sie sollten Ihre Kopfzeile mit dem Inhalt sehen, den Sie in Ihren Adapter setzen.

    In meinem Fall funktioniert das

     View header = getLayoutInflater().inflate(R.layout.header, null); View footer = getLayoutInflater().inflate(R.layout.footer, null); ListView listView = getListView(); listView.addHeaderView(header); listView.addFooterView(footer); setListAdapter(new ArrayAdapter<String(this,android.R.layout.simple_list_item_single_choice,android.R.id.text1, names)); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.