android - 以编程方式将 ID 设置为视图
android - set ID to the view programmatically
我正在以编程方式添加 Buttons,Buttons 的数量取决于某些条件。要为 RelativeLayout.LayoutParams 添加规则,使 Buttons 彼此对齐,我需要设置它们的 ID 。 2-3 年前的所有答案都说 setId(int) 可以(例如 setId(1))但现在它被禁止了(UPD。只有 int 文字是不行的。使用 int 变量一切正常。想知道为什么)。现在是怎么做到的?
根据 API,它并未被禁止或弃用。这是使用它的最佳方式。
创建res/values/ids.xml
并定义
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="id" name="button1" />
<item type="id" name="button2" />
</resources>
一旦你有了它,你就可以使用 setId
button1.setId(R.id.button1);
button2.setId(R.id.button2);
既然你说你可以有任意数量的按钮,那么你可以使用 -
为每个按钮设置 id
button.setId(View.generateViewId()); //Works for API 17 and above
如果minSdk
小于17,那么可以使用-
button.setId(counter++); //Each time counter will be increment giving a unique id
我正在以编程方式添加 Buttons,Buttons 的数量取决于某些条件。要为 RelativeLayout.LayoutParams 添加规则,使 Buttons 彼此对齐,我需要设置它们的 ID 。 2-3 年前的所有答案都说 setId(int) 可以(例如 setId(1))但现在它被禁止了(UPD。只有 int 文字是不行的。使用 int 变量一切正常。想知道为什么)。现在是怎么做到的?
根据 API,它并未被禁止或弃用。这是使用它的最佳方式。
创建
res/values/ids.xml
并定义<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="button1" /> <item type="id" name="button2" /> </resources>
一旦你有了它,你就可以使用
setId
button1.setId(R.id.button1); button2.setId(R.id.button2);
既然你说你可以有任意数量的按钮,那么你可以使用 -
为每个按钮设置 idbutton.setId(View.generateViewId()); //Works for API 17 and above
如果minSdk
小于17,那么可以使用-
button.setId(counter++); //Each time counter will be increment giving a unique id