在我的应用程序中加载活动时,我正在执行以下操作
setContentView(R.layout.main2);
layoutToAdd = (LinearLayout) findViewById(R.id.linearLayout1);
for(i=0; i<num;i++)
{
LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
View view = inflater.inflate(R.layout.camera, null);
layoutToAdd.addView(view);
}
num的值每次都不同。
在我的LayoutInflater布局中,我有一个文本视图,编辑文本和一个按钮。
现在根据num
中提到的次数显示它们,现在每次我想要更改文本和按钮名称。如何设置TextView和Button的文本。
答案 0 :(得分:2)
在充气布局后设置它们
View view = inflater.inflate(R.layout.camera, null);
TextView tv = view.findViewById(R.id.textviewid); //id defined in camera.xml
Button b = view.findViewById(R.id.buttonid); //id defined in camera.xml
tv.setText();
b.setText();
layoutToAdd.addView(view);
答案 1 :(得分:0)
我建议你,你应该创建一个只包含LinearLayout的xml文件。
然后programaticall,您应该创建TextViews,EditTexts和Buttons并将其添加到LinearLayout。
您可以设置这些组件的不同属性,如下所示:
以下是设置TextView属性的示例。对于其他组件,您可以设置相同的。
TextView tv=new TextView(context);
tv.setBackgroundResource(R.drawable.textview_bg);
tv.setPadding(20, 5, 40, 5);
tv.setText("set your text");
tv.setLayoutParams(new Gallery.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
tv.setTextColor(Color.RED);
tv.setClickable(true);
tv.setId(id);//where id is an integer which should be unique for each TextView
layout.addView(tv);
你还需要在for循环中创建和添加所有这三个组件,根据你用来迭代循环的i提供独特的id!你可以有一个String数组用于textviews和按钮,用于在for循环中设置它们的名字,你可以更容易地传递你喜欢在循环中设置它们的字符串。
答案 2 :(得分:0)
您必须存储膨胀视图的引用并存储在List中,然后当您只想修改list.get(2).findViewById(R.id.textbox_id)时。
希望有所帮助。