Java getIdentifier()或getChildAt()!当循环';它有多大,如何?

Java getIdentifier()或getChildAt()!当循环';它有多大,如何?,java,android,android-view,android-button,android-viewgroup,Java,Android,Android View,Android Button,Android Viewgroup,场景: 我的活动包含几个ID为btn1、btn2等的按钮。我想让代码通过循环计数器访问这些按钮。那么,以下哪两种方法更有效?谢谢 getChildAt(): for (int optionCounter = 0; optionCounter < bigNumber; optionCounter++) { optionButton = (Button) buttonRelativeLayout.getChildAt(optionCounter); //Layout co

场景: 我的活动包含几个ID为btn1、btn2等的按钮。我想让代码通过循环计数器访问这些按钮。那么,以下哪两种方法更有效?谢谢

getChildAt():

for (int optionCounter = 0; optionCounter < bigNumber; optionCounter++) {   
        optionButton = (Button) buttonRelativeLayout.getChildAt(optionCounter); //Layout contains Buttons
        optionButton.setText("some text");   }
 for (int optionCounter = 0; optionCounter < bigNumber; optionCounter++) {
   String buttonID = "btn" + optionCounter;
   int resID = getResources().getIdentifier(buttonID, "id", "com.sample.project");
   optionButton = ((Button) findViewById(resID));
   optionButton.setText("some text");   }
for(int optionCounter=0;optionCounter
注:buttonRelativeLayout只是人工引入的,用于按子编号访问按钮。否则就没用了

getIdentifier():

for (int optionCounter = 0; optionCounter < bigNumber; optionCounter++) {   
        optionButton = (Button) buttonRelativeLayout.getChildAt(optionCounter); //Layout contains Buttons
        optionButton.setText("some text");   }
 for (int optionCounter = 0; optionCounter < bigNumber; optionCounter++) {
   String buttonID = "btn" + optionCounter;
   int resID = getResources().getIdentifier(buttonID, "id", "com.sample.project");
   optionButton = ((Button) findViewById(resID));
   optionButton.setText("some text");   }
for(int optionCounter=0;optionCounter
注意:不鼓励使用getIdentifier函数。按标识符检索资源比按名称检索资源要高效得多。参考文件到此为止


再次感谢

您知道可以通过编程方式在视图上设置id吗?您还可以通过这种方式生成唯一的ID:谢谢JohanShogun!但我的问题只涉及使用循环计数器访问循环中的视图,而不是设置ID或生成ID。在这种情况下,getChildAt更有效,它是一个单一的查找,而您的其他代码使用多个查找。可以肯定的是,在每次查看之前和之后进行多次夯实,这样你就可以知道哪种方式最有效。谢谢你,约翰霍根!您知道可以通过编程方式在视图上设置id吗?您还可以通过这种方式生成唯一的ID:谢谢JohanShogun!但我的问题只涉及使用循环计数器访问循环中的视图,而不是设置ID或生成ID。在这种情况下,getChildAt更有效,它是一个单一的查找,而您的其他代码使用多个查找。可以肯定的是,在每次查看之前和之后进行多次夯实,这样你就可以知道哪种方式最有效。谢谢你,约翰霍根!