android - 以编程方式将ID设置为视图

时间:2016-03-18 00:51:39

标签: android view programmatically-created

我以编程方式添加按钮按钮的数量取决于某些条件。要为 RelativeLayout.LayoutParams 添加规则,按钮与对方的顶部对齐,我需要设置 ID 。从2 - 3年前的所有答案都说 setId(int)是可以的(例如 setId(1)),但现在它被禁止了( UPD 。只有int literals不行。使用int变量一切正常。想知道为什么)。现在怎么办?

2 个答案:

答案 0 :(得分:10)

根据API,未被禁止或弃用。这是使用它的最佳方式。

  1. 创建res/values/ids.xml并定义

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
            <item type="id" name="button1" />
            <item type="id" name="button2" />
    </resources>
    
  2. 一旦你拥有了它,你可以使用setId

    button1.setId(R.id.button1);
    button2.setId(R.id.button2);
    

答案 1 :(得分:7)

由于您说您可以有任意数量的按钮,因此您可以使用 -

为每个按钮设置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