在android中动态添加UI内容
问题描述:
我有一个Android应用程序,它提出了一个问题,然后是x
选项数。 每个选项包含textview
,ImageView
和radio button
。在android中动态添加UI内容
x
的值(即选项的数量)不是恒定的。我想动态添加UI内容以满足此要求。
目前我已经在布局的xml中编写代码来显示最多4个选项。如果选项的数量是2我隐藏选项3和4使用类似的东西
tvoption1.setVisibility(View.GONE);
tvoption2.setVisibility(View.GONE);
但是,这不是可缩放的。任何人都可以告诉我如何动态地为java添加选项。还是有更好的方法?
答
甲View
可以在运行时通过使用充气这样加入:
LinearLayout linearLayout = (LinearLayout)inflater.inflate(R.layout.news_categories_item, null);
TextView categoryValueTextView = (TextView)linearLayout.findViewById(R.id.news_category_item_value);
mMainLinearLayout.addView(categoryValueTextView);
在这个例子中,包含一个TextView一个的LinearLayout膨胀。然后获得对构成TextView的引用,并且TextView被动态添加(在运行时)到主线性布局(mMainLinearLayout
)。
使用getLayoutInflater()
可以在活动中获取充气器对象。
答
分别创建行布局,从主XML
获取LayoutInflater从上下文服务:
LayoutInflater inflater=(LayoutInflater)getSystemService(LAYOUT_INFLATE_SERVICE);
使用下面的方法addview主XML,我假设你有父布局llParent XML和你想从列表中添加这个llPaent中的项目。
for(int i=0;i<list.size();i++)
{
LinearLayout llView=(LinearLayout)inflater.inflate(R.layout.row);
//get view id and set values
TextView txt=(TextView)llView.findViewById(R.id.text);
}