2012-05-09 19 views
0

こんにちは、ビューの高さを設定しようとしていますが、2行目にnullポインタ例外がスローされています。ビューの高さを設定すると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

+0

答えをマークするのを忘れないでください、それは他の人に役立ちます。 – Signcodeindie

答えて

1

あなたはあなたのビューを膨らませるが、それを追加していない私のコードがあることについてはどこでも。高さを設定するには、ビューをアプリケーションに配置する必要があります。

既存のレイアウトの一部をretriveしようとしている場合は、あなたがこれを実行する必要があります。

View header = (View)findViewById(R.layout.customheader); 
header.getLayoutParams().height=55; 
+0

まあまあです。私は他のアクティビティでも使用している既存のレイアウトファイルcustomheaderを使用してリストビューにヘッダを追加しようとしていました – Ash

1

、ウルcustomheaderに確認してください0として、高さまたは一部の値がwrapcontent、fillparent、matchparentを入力しないでください値...

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

    header.setLayoutParams(params); 
+0

私のプログラムを編集しましたが、このコードでclassCastExceptionを取得しました – Ash

0

あなたはヘッダとしてリストビューに追加されている場合は、あなたが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); 
するLayoutParamsが必要になります
関連する問題