【发布时间】:2017-04-18 23:37:09
【问题描述】:
到目前为止,我还没有找到其他人解决这个问题。
我试图做的是将文本视图动态膨胀为线性布局并设置每个文本视图的文本。
我可以为 textviews 充气并为其中一些设置文本,但是当我为 2 个以上的 textviews 充气时,我只能为 2 个设置文本。
在提供的示例中,我正在尝试扩充 3 个文本视图并设置它们的文本。
我相信问题在于,当我尝试设置文本视图的文本时,它会覆盖已经设置了文本的文本视图的文本。
我在调试时发现了这个。
下面是我正在使用的代码(它不漂亮,我只是想我会这样显示它以显示所有数据类型等)
for (int i = 0; i < testsList.size(); i++) {
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View moduleView = inflater.inflate(R.layout.tests_layout, linearLayout, false);
linearLayout.addView(moduleView, linearLayout.getChildCount() - 1);
TextView txtTestName = (TextView) v.findViewById(R.id.txtTestName);
String name = testsList.get(i).getTestName();
txtTestName.setText(name);
}
我还附上了我得到的输出图像。在图像中,显示“TextView”的文本视图是我无法为其设置文本的文本视图。它应该说“test5”,而目前说“test5”的Textview实际上应该说“test4”,据我所知,经过调试
This is an image of the result i am getting
如果有人能对此有所了解,我将非常感激!
【问题讨论】:
-
您将膨胀的
View分配给moduleView,但您在v中寻找txtTestNameTextView。你确定这是正确的吗?也就是说,你确定不应该在moduleView上调用findViewById()吗? -
是的,解决了!我不敢相信我没有捡到...非常感谢!
标签: android dynamic layout-inflater android-inflate