【发布时间】:2014-09-09 03:52:21
【问题描述】:
我有一个垂直方向的 LinearLayout,我想添加另一个带有两个孩子的水平 LinearLayout。
这是我的 xml 布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/Gray_background"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="10dp"
android:background="@color/GrayStroke" />
<LinearLayout
android:id="@+id/contacts_tab_menulist"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/White"
android:orientation="vertical" >
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/GrayStroke" /> </LinearLayout>
这是应该完成这项工作的代码:
View rootView = inflater.inflate(R.layout.contacts_tab,
container, false);
contacts_tab_menulist = (LinearLayout) getActivity().findViewById(R.id.contacts_tab_menulist);
// add LayoutParams
LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 35);
LinearLayout listItem = new LinearLayout(getActivity());
listItem.setLayoutParams(lparams);
listItem.setOrientation(LinearLayout.HORIZONTAL);
AspectRatioImageView icon = new AspectRatioImageView(getActivity());
LinearLayout.LayoutParams ic_params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 25);
icon.setImageResource(R.drawable.contacts_add_contact);
icon.setLayoutParams(ic_params);
listItem.addView(icon);
TextView title = new TextView(getActivity());
LinearLayout.LayoutParams t_params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
title.setText("Add Contact");
title.setId(0);
title.setLayoutParams(t_params);
listItem.addView(title);
contacts_tab_menulist.addView(listItem);
return rootView;
我在 contacts_tab_menulist.addView(listItem) 上得到一个 nullPointerException。我做错了什么?
【问题讨论】:
-
您可能需要
setContentView(R.layout.<xml_file_name>);,或getLayoutInflater().inflate(R.layout.<xml_file_name>, null);。 -
这应该对你有帮助:stackoverflow.com/questions/6661261/…>
-
@myninjaname 我更新了问题,请看一下。
-
@David 在答案中,我正在做同样的事情。但我仍然遇到同样的错误。
-
contact_tab_menulist 为空,contacts_tab_menulist 是否包含在您的活动布局中?