0

在我的应用程序中加载活动时,我正在执行以下操作

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 的文本。

4

3 回答 3

3

膨胀布局后只需设置它们

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);
于 2011-11-18T07:46:23.183 回答
0

我的建议是,您应该创建一个仅包含 LinearLayout 的 xml 文件。

然后编程,您应该创建 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!并且您可以为 textviews 和按钮设置一个字符串数组,以便在 for 循环中设置它们的名称,这将在循环中传递您喜欢设置给它们的字符串对您来说更容易。

于 2011-11-18T07:46:35.603 回答
0

您必须存储膨胀的视图的引用并存储在列表中,然后当您想修改时只需 list.get(2).findViewById(R.id.textbox_id)。

希望它有所帮助。

于 2011-11-18T07:47:17.777 回答