Как изменить значение текстового представления в действии A после нажатия кнопки, которая присутствует в действии B в AnAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как изменить значение текстового представления в действии A после нажатия кнопки, которая присутствует в действии B в An

Сообщение Anonymous »

В моем приложении есть два действия. В действии A (MainActivity.kt) у меня есть две кнопки с именами buttonGo и buttonCounter. Если я нажму кнопку «Go», он перейдет к другому действию B (Second.kt). Я хочу добиться того, чтобы каждый раз, когда я нажимаю кнопку buttonCounter, textCounter(Textview), присутствующий в действии B, должен увеличиваться на 1. В настоящее время приращения не происходит.
MainActivity.kt

Код: Выделить всё

class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private lateinit var counterViewModel: CounterViewModel

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
counterViewModel = ViewModelProvider(this)[CounterViewModel::class.java]

binding.buttonGo.setOnClickListener {
val intent = Intent(this@MainActivity, Second::class.java)
startActivity(intent)
}

binding.buttonCounter.setOnClickListener {
counterViewModel.incrementCounter()
}
}
}
Second.kt

Код: Выделить всё

class Second:AppCompatActivity() {
private lateinit var  counterViewModel: CounterViewModel
private lateinit var binding: SecondBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

binding = SecondBinding.inflate(layoutInflater)
setContentView(binding.root)
counterViewModel = ViewModelProvider(this)[CounterViewModel::class.java]

binding.buttonBack.setOnClickListener {
onBackPressed()
}

counterViewModel.counter.observe(this, Observer {count ->
binding.textCounter.text = count.toString()
})
}
}
Ниже представлена ​​моя модель представления с именем CounterViewModel.kt

Код: Выделить всё

class CounterViewModel : ViewModel() {
private val _counter = MutableLiveData(0)
val counter: LiveData get() = _counter

fun incrementCounter() {
_counter.value = (_counter.value ?: 0) + 1
}
}
Это файл макета MainActivity.kt Это мой файл макета для Second.kt Я создал модель представления для наблюдения за изменениями данных, создал функцию для приращения, но textCounter не увеличивается по сравнению с исходным значением 0.


Подробнее здесь: https://stackoverflow.com/questions/786 ... n-which-is
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»