Текст TextView изменяется, но не обновляется в макете. Я перепробовал все методы, которые мог найти, но ничего не получалось. У меня очень простое c приложение с одним видом деятельности и 3 макетами *. * Это первое приложение, которое я сделал, поэтому я подумал, что так будет проще Основные проблемы, с которыми я сталкиваюсь, две: почти вся информация вокруг старая и в java, и мой текст textView не меняется .. Приложение представляет собой простую игру "Рок-бумага-ножницы", которую я пытаюсь сделать в качестве упражнения.
Значения textViews.text обновляются, но в макете всегда отображается один и тот же текст ... Я понятия не имею, в чем может быть проблема. Я также изо всех сил пытаюсь понять, как именно все это работает точно ... как InflateLayout, Context и Android в целом. Я не очень понимаю из ссылки android.
НЕТ ВНУТРЕННЕГО (), POSTINFLATE (), FORCELAYOUT (), ВИДИМОСТЬ ВИДИМОСТИ, ПОТОМУ ЧТО НЕ ИХ РАБОТАЛ: (
Выдержка из кода
class MainActivity : AppCompatActivity() {
lateinit var TITLE:TextView
lateinit var PARAGRAPH:TextView
override fun onCreate(savedInstanceState :Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val InflaterInitializer = LayoutInflater.from(applicationContext) as LayoutInflater
val inflater = InflaterInitializer.inflate(R.layout.activity_2, null, false)
TITLE= inflater.findViewById(R.id.title) as TextView
PARAGRAPH= inflater.findViewById(R.id.paragraph) as TextView
}
Существует три функции, подобные этой:
fun FUNCTION(v :View) {
val userChoice = "XXX"
val computerChoice = getComputerChoice()
if (userChoice == computerChoice) {
FUNCTION_2(computerChoice)
} else {
runOnUiThread {
TITLE.text =
if (computerChoice == "YYY") getString(R.string.YOU_WON) else getString(R.string.YOU_LOSE);
PARAGRAPH.text = getString(R.string.STRING, computerChoice)
}
}; resultScreen()
}
Функция_2 ...
private fun FUNCTION_2(cc :String) {
runOnUiThread {
TITLE.text = getString(R.string.STRING)
PARAGRAPH.text = getString(R.string.STRING, cc)
}; resultScreen()
}
resultScreen () - это просто вызов setContentView (LAYOUT)
Вот видео приложения и проблема обновления: https://imgur.com/a/iWCRMkq
Код завершен здесь: https://github.com/noiwyr/MorraCinese
РЕДАКТИРОВАТЬ К сожалению, ни один из ответов на самом деле не сработал, как я надеялся, однако Редизайн приложения и использование нескольких действий с некоторыми изменениями решили проблему. Вы можете найти новый код в репозитории github.
Однако мне было бы интересно узнать, есть ли работающее решение для этого вопроса:)