0

こんにちは私はビューの高さを設定しようとしていますが、2行目にnullポインタ例外がスローされます。

私は実際にリストアクティビティにヘッダーを追加しようとしています。そのための私のコードは次のとおりです。

View header= (View)getLayoutInflater().inflate(R.layout.customheader, null);
getListView.addHeaderView(header);
header.getLayoutParams().height=(int)55; //This line is throwing a null pointer exception
setListAdapter(adapter);


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    LayoutParams params=new LayoutParams(-1, 55);
    View header= (View)getLayoutInflater().inflate(R.layout.customheader, null);
    getListView().addHeaderView(header);
    getListView().setCacheColorHint(0);
    getListView().setBackgroundResource(R.drawable.patterns);
    setListAdapter(new Settingsadapter(this, menu));
    header.setLayoutParams(params);
}

例外:E / AndroidRuntime(504):java.lang.ClassCastException:android.view.ViewGroup $ LayoutParams

4

3 に答える 3

1

ビューを膨らませていますが、どこにも追加していません。高さを設定するには、ビューがアプリケーションにある必要があります。

既存のレイアウトの一部を取得しようとしている場合は、次のようにする必要があります。

View header = (View)findViewById(R.layout.customheader); 
header.getLayoutParams().height=55;
于 2012-05-09T13:00:11.517 に答える
1

ur customheaderで、高さが0であるか、一部の値がwrapcontent、fillparent、matchparent値を入力しないことを確認してください。

LayoutParams params = new LayoutParams(urWidth, 55);
    View  header= (View)getLayoutInflater().inflate(R.layout.customheader, null);

    header.setLayoutParams(params);
于 2012-05-09T13:13:24.920 に答える
0

ヘッダーとしてlistViewに追加する場合は、LayoutParamsをAbsListView.LayoutParamsにする必要があります。

AbsListView.LayoutParams params = new AbsListView.LayoutParams(urWidth, 55);
View  header= (View)getLayoutInflater().inflate(R.layout.customheader, null);
header.setLayoutParams(params);
listView.addHeader(header); 
于 2013-10-25T07:54:52.153 に答える