2016-03-31 12 views
1

ボタンをプログラムで追加したい場合は、どのLayoutParamsも設定する必要があります。LayoutParamsの設定中にNullPointerExceptionが発生する

のjava.lang.NullPointerException::nullのオブジェクト参照

私に 'int型 android.view.ViewGroup $ LayoutParams.height' フィールドへの書き込みを試み Unfortunalyはアプリが例外を与えますなぜ分かりませんか。私たちを手伝ってくれますか? ここに私のコードです。

Button b = new Button(getApplicationContext()); 
     b.setText(R.string.klick); 
     ViewGroup.LayoutParams params = b.getLayoutParams(); 
     params.height = ViewGroup.LayoutParams.MATCH_PARENT; 
     params.height = ViewGroup.LayoutParams.WRAP_CONTENT; 

答えて

5

ボタンをプログラムで作成するので、bにはレイアウトパラメータが設定されません。だから、このようにそれらを手動で設定する必要があります:少なくとも

ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
b.setLayoutParams(params); 

かを彼らに

ViewGroup.LayoutParams params = b.getLayoutParams(); 
    if (params != null) { 
     params.width= ViewGroup.LayoutParams.MATCH_PARENT; 
     params.height = ViewGroup.LayoutParams.WRAP_CONTENT; 
    } else 
     params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
を変更する前のparamsがnullでないかどうかを確認します
関連する問題