我的问题是如何为从xml动态添加的文本视图设置不同的文本,
示例代码:
ViewGroup view = (ViewGroup) findViewById(android.R.id.content);
LinearLayout r = (LinearLayout)findViewById(R.id.test11);
LayoutInflater layoutInflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for(int i =0 ; i<20 ; i++) {
r.addView(layoutInflater.inflate(R.layout.mcdonald_card, view, false));
}
R.layout.mcdonald_card:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/card_margin">
<LinearLayout
style="@style/Widget.CardContent"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/test222"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Info"
android:textAppearance="@style/TextAppearance.AppCompat.Title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="aaaaaaaaa" />
</LinearLayout>
</android.support.v7.widget.CardView>
如何更改test222的文本,以便添加的20个文本有不同的文本? 如果不可能,有什么替代方案? 先谢谢你了
答案 0 :(得分:2)
尝试这样的事情
for(int i =0 ; i<20 ; i++) {
View view = layoutInflater.inflate(R.layout.mcdonald_card, view, false);
((TextView)view.findViewById(R.id.test222)).setText("some text");
r.addView(view);
}
<强>更新强>
修改你的xml以包含按钮,如下所示。
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/card_margin">
<LinearLayout
style="@style/Widget.CardContent"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/test222"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Info"
android:textAppearance="@style/TextAppearance.AppCompat.Title" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="aaaaaaaaa" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
,您的代码应该是
for(int i =0 ; i<20 ; i++) {
View view = layoutInflater.inflate(R.layout.mcdonald_card, view, false);
((TextView)view.findViewById(R.id.test222)).setText("some text");
((Button)view.findViewById(R.id.button)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Do whatever you want here on click of button
}
});
r.addView(view);
}