Есть у меня
Activity, в котором есть встроенный
LinearLayout, в котором есть один
editText-элемент по умолчанию, но пользователь кнопочкой может добавлять
ещё editText-элементы. Как это сделано? А вот как:
private void addNewEditText(){
if(getEditTextId() >= EDIT_TEXT_ID_LIMIT){
//Часть кода пропущу, тут просто Toast который появляется, когда у нас слишком много
//editText элементов
}else {
setEditTextId(getEditTextId()+1);
EditText editText = new EditText(AddWordActivity.this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
editText.setLayoutParams(params);
editText.setSingleLine(true);
editText.setId(getEditTextId());
editViewsLayout.addView(editText);
}
}
setId() метод может добавлять только
int значения в качестве
id. И вот тут проблема.
Когда я хочу достать
сгенерированный editText:
private void submitAllWords(){
EditText et = (EditText)findViewById(R.id.editText_0);
String word = et.getText().toString();
Log.w("word to add: ", word + " from " + et.getId());
insertNewWord(word, db);
//TODO: Add here parsing words from the generated editTexts
for(int i = 1; i <= EDIT_TEXT_ID_LIMIT; i++){
et = (EditText)findViewById(i);
}
}
В одной из последних строк я пытаюсь
достать элемент по int-айдишнику, но ругается Android-Studio, говорит:
Expected resource type id
и
Constant and resource type mismatching
В чём проблема? Как достать сгенерированные элементы по айдишнику?