在我的片段中,我有一个LinearLayout
,我想填充TextViews
和Buttons
在我的onCreate
:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_checkout, container, false);
container = (LinearLayout) v.findViewById(R.id.myLayout);
return v;
}
为什么我的容器变灰了?
我正在尝试这个:
for(int x = 0; x < 3; x++){
TextView text = new TextView(getActivity());
text.setText(x);
container.addView(text);
}
但它只是退出。我可以在fragments
吗?
答案 0 :(得分:1)
您应该添加在代码中定义的TextView
。就像text
一样。
tvOrder
可能存在于您的布局中。
您的onCreteView
方法应该返回View
。
你可以这样做。
修改强>
<LinearLayout
android:id="@+id/myLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!--you should add item here-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:id="@+id/my_sub_linear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!--you should not add item here, and you can programatically add layout in it ?-->
</LinearLayout>
</LinearLayout>
并在您的代码中
private LinearLayout container,mySubLinearLayout;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_checkout, container, false);
container = (LinearLayout) v.findViewById(R.id.myLayout);
// add here
mySubLinearLayout = (LinearLayout) v.findViewById(R.id.my_sub_linear);
return v;
}
这段代码
for(int x = 0; x < 3; x++){
TextView text = new TextView(getActivity());
text.setText(x + "");
mySubLinearLayout.addView(text);
}
注意强>
如果要以编程方式添加布局,则应设置空布局。
您也可以删除代码中的所有视图。
答案 1 :(得分:0)
您必须更改以下代码,因为您在文本视图中设置了整数值。
for(int x = 0; x < 3; x++){
TextView text = new TextView(getActivity());
text.setText(String.valueOf(x));
container.addView(text);
}