您好我正在尝试设置视图高度,但它在第二行抛出空指针异常。
我实际上是在尝试为列表活动添加标题。为此我的代码是:
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 :(得分:1)
您正在夸大视图,但不会将其添加到任何位置。要设置高度,视图需要位于应用程序中。
如果您尝试检索部分现有布局,则需要执行以下操作:
View header = (View)findViewById(R.layout.customheader);
header.getLayoutParams().height=55;
答案 1 :(得分:1)
确保在你的customheader中,高度为0或某些值不输入wrapcontent,fillparent,matchparent values ...
LayoutParams params = new LayoutParams(urWidth, 55);
View header= (View)getLayoutInflater().inflate(R.layout.customheader, null);
header.setLayoutParams(params);
答案 2 :(得分: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);