ListView
の場合はaddHeaderView()
とaddFooterView()
を使用しようとしています。ヘッダーまたはフッターのいずれかのXMLで定義済みのビューを使用しようとすると、NULLポインタ例外が発生します。しかし、私は動的にコードを使用してビューを作成する場合、それは正常に動作します...Android ListView XMLで定義された定義済みのビューのaddHeaderView()nullPointerException
// 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);
私のスタックトレース:
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
任意の手がかり?
に動作します。ダイナミックに作成された要素でうまく動作するのは本当に奇妙です。なぜ私はここでレイアウトインフレータフープを飛び越えなければならないのか分かりません。また、このメソッドは、私のビューのxmlに設定した余白を無視するように見える... –
別のレイアウトでテキストビューを配置しようとすると、それを膨らませ、ヘッダーとフッタービューを設定するために使用した後にできますか? – user370305
それはうまくいった。私は 'LinearLayout'に' TextView'をラップしました。私はこれを私の答えと記しておきますが、私はそれを機能させるためにフープを突き抜けなければならなかった理由を知りたがりました。それがバグかどうかわからない。ありがとう! –