gpt4 book ai didi

android - 动态布局 : how to get specific view

转载 作者:行者123 更新时间:2023-11-29 01:53:44 27 4
gpt4 key购买 nike

我有一个 Activity ,我需要在其中通过代码动态添加 LinearLayout(因为它取决于用户输入)。所以,这是我所做的:

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout lyt = (LinearLayout) inflater.inflate(R.layout.row_edit, mLytRows);
TextView tvName = (TextView) lyt.findViewById(R.id.name_textview);
tvName.setText(user.getName());

其中 R.layout.row_edit 是一个 LinearLayout,其中有一些 View ,包括一个 TextView,而 mLytRows 是一个引用的 LinearLayout(在 XML 中定义UI),我想在其中添加 row_edit 布局。

根据用户输入,我多次重复此代码,问题如下:当我尝试引用 TextView 时,我得到了我添加的第一个 LinearLayout 的 TextView。

为什么?请问我该如何解决?

最佳答案

仔细看看the documentation .

如果您在 inflate() 中指定第二个参数,该方法返回父 View ,而不是膨胀的 View 。

因此,lyt 始终是您的父级,findViewById 始终返回它找到的具有 R.id.name_textview ID 的第一个元素。

你可能想做

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout lyt = (LinearLayout) inflater.inflate(R.layout.row_edit, null);
TextView tvName = (TextView) lyt.findViewById(R.id.name_textview);
tvName.setText(user.getName());
mLytRows.addView(lyt);

并且在 ViewGroup您可以看到有几个 addView 方法可以将 View 放置在您想要的位置。

关于android - 动态布局 : how to get specific view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16551426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com