如何使用不同的文本和图像为几个相同的布局充气?我尝试过使用这段代码
for (final Tour t : info.tours) {
final LinearLayout list = (LinearLayout) findViewById(R.id.tours_list);
Log.d(Const.LOG_TAG, "Add child view to tours_list");
final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View child = inflater.inflate(R.layout.tour_item_for_guide_info,
list, true);
final ImageView tourImage = (ImageView) findViewById(R.id.tour_image);
final String tourImgUrl = Const.HOST + t.image;
imageLoader.DisplayImage(tourImgUrl, tourImage);
TextView tourText = (TextView) findViewById(R.id.text);
tourText.setText(t.name);
}
但是在第一个充气布局中设置了文本和图像,替换了之前的文本和图像。我理解它发生了什么,因为布局具有相同的ID。我能解决吗?我知道ListView和适配器,但我想知道它是否可以在没有它们的情况下完成。
答案 0 :(得分:2)
我认为ImageView和TextView - tourImage
,tourText
- 是R.layout.tour_item_for_guide_info
的元素。
如果是这样,那么当您引用它时,您应该使用child
视图来获取它们。
换句话说,而不是:
ImageView tourImage = (ImageView) findViewById(R.id.tour_image);
TextView tourText = (TextView) findViewById(R.id.text);
你应该:
ImageView tourImage = (ImageView)child.findViewById(R.id.tour_image);
TextView tourText = (TextView)child.findViewById(R.id.text);
不确定这是否能解决您的问题,但它看起来像是一个错误。