Я предполагаю, что ваши типы данных здесь из того, что я вижу в вашем примере кода, но похоже, что вам нужно использовать HashMap<String, Text>
для корреляции String
с Text
(это другой String
?), Который вы устанавливаете в setText()
.Это упростит ваши условия if / else, будет более динамичным и будет более производительным, потому что он хешируется.
Я не уверен, откуда в вашем образце берутся R.string.def1
и R.string.def2
, но этовы загружаете их в HashMap
, как показано в начале:
Map<String, Text> strToText = new HashMap<String, Text>();
strToText.put("def1", R.string.def1);
strToText.put("def2", R.string.def2);
Вы можете искать их следующим образом при получении:
t.setText(strToText.get(str));
Вы также можете сделать что-то, где R.string
сам по себе является HashMap
вместо того, чтобы копировать его (если у вас есть доступ, измените его, то есть ... похоже, это может быть какая-то библиотека Android).Вы также можете рассмотреть возможность использования отражения Java для выполнения поиска и / или инициализации карты, чтобы вам не приходилось менять код каждый раз, когда изменяются определения.