According to the document , View.generateViewId()added to 17 API level, will be generated value suitable for use setId(int). This value will not interfere with the ID values generated at build time using aapt for R.id.
I experimented with View.generateViewId()to find out how he behaves. Here are my findings.
- 1 (1, 2, 3...)
generateViewId() , . , 4, 5.
, , , onCreate() , generateViewId() , , , onCreate() , .
Android - , , EditText, CheckBox - , , . , - EditText , , , - , .
, .
, Android , XML, . , , : 2131427423. , , generateViewId(). , , 1, , . , :
public class MainActivity extends AppCompatActivity {
private int lastAllocatedViewId = 0;
private ArrayList<QuizQuestions> quizQuestions;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
quizQuestions = parseQuizQuestionsXml();
LinearLayout container = (LinearLayout) findViewById(R.id.quiz_questions_container);
for (int i = 0; i < quizQuestions.size(); i++) {
LinearLayout quizQuestionView = (LinearLayout) inflater.inflate(R.layout.quiz_question_template, parent, false);
quizQuestionView.setId(lastAllocatedViewId++);
(...)
container.addView(quizQuestionView);
}
}
}