Какие коды в примере файла активности .kt ниже я должен добавить или изменить, чтобы перенести его на viewBinding из син ⇐ Android
-
Anonymous
Какие коды в примере файла активности .kt ниже я должен добавить или изменить, чтобы перенести его на viewBinding из син
Я пытаюсь перейти на привязку просмотра с синтетической и хочу знать точную модификацию кода, которая мне нужна в файле активности ниже.
В моем build.gradle(app) я удалил «применить плагин: 'kotlin-android-extensions'» и включил viewBinding (viewBinding true}.
В моих файлах kt активности я также удалил синтетические справочные строки импорта. Например
Когда я удаляю «import kotlinx.android.synthetic.main.activity_kulakan.rv_list» в AddOrderActivity.kt ниже, я получаю ошибку «Неразрешенная ссылка: rv_list», если пытаюсь построить.
приватное развлечение renderView() { vallayoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false) rv_list.layoutManager = менеджер макета rv_list.adapter = адаптер Это весь файл AddOrderActivity.kt
id пакета.platinum.android.feature.addOrder.main импортировать android.app.Activity импортировать android.content.Intent импортировать android.os.Bundle импортировать android.view.Menu импортировать android.view.MenuItem импортировать android.view.View импортировать androidx.recyclerview.widget.LinearLayoutManager импортировать androidx.recyclerview.widget.RecyclerView импортировать com.prolificinteractive.materialcalendarview.CalendarDay импортировать идентификатор.platinum.android.R импортировать id.platinum.android.base.BaseActivity импортировать id.platinum.android.feature.choose.addProduct.ActivitySubCategory import id.platinum.android.feature.choose.productAdd.ChooseProductActivity импортировать id.platinum.android.feature.dialog.CartCountDialog импортировать id.platinum.android.feature.dialog.NoteDialog импортировать id.platinum.android.feature.dialog.SingleDateDialog импортировать id.platinum.android.feature.scan.ScanCodeActivity импортировать id.platinum.android.feature.transaction.successadd.SuccessAddActivity импортировать id.platinum.android.models.cart.Cart импортировать id.platinum.android.models.product.Product импортировать id.platinum.android.rest.entity.RestException импортировать id.platinum.android.ui.ext.toast импортировать id.platinum.android.utils.AppConstant импортировать id.platinum.android.utils.AppSession импортировать id.platinum.android.utils.Helper импортировать org.threeten.bp.LocalDate класс AddOrderActivity: BaseActivity(), AddOrderContract.View, SingleDateDialog.Listener, CartCountDialog.Listener,NoteDialog.Listener { сопутствующий объект { var data = "" } частный val-кодOpenScan = 1001 частный val-кодOpenChooseProduct = 1002 частный адаптер val = AddOrderAdapter() переопределить удовольствие createPresenter(): AddOrderPresenter { вернуть AddOrderPresenter(это, это) } переопределить удовольствие createLayout(): Int { вернуть R.layout.activity_add_order } переопределить fun startUpActivity(savedInstanceState: Bundle?) { рендервиев() getPresenter()?.onViewCreated() открытьВыбратьПродукт() } личное развлечение setupToolbar() { supportActionBar?.apply { setDisplayHomeAsUpEnabled (истина) setDisplayShowHomeEnabled (истина) title = getString(R.string.new_add_order) высота = 0f } } личное развлечение renderView() { vallayoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false) rv_list.layoutManager = менеджер макета rv_list.adapter = адаптер val счет = getIntent().getStringExtra("счет") адаптер.callback = объект: AddOrderAdapter.ItemClickCallback { переопределить fun onCountDialog(data: Cart, Position: Int) { openCountDialog (данные, позиция) } переопределить fun onNote(data: Cart, Position: Int) { openNoteDialog (данные, позиция) } переопределить fun onDecrease(data: Cart, Position: Int) { getPresenter()?.decreaseCart(данные, позиция) } переопределить fun onIncrease(data: Cart, Position: Int) { getPresenter()?.increaseCart(данные, позиция) } переопределить fun onDelete(data: Cart, Position: Int) { getPresenter()?.deleteCart(данные, позиция) } } rg_payation.setOnCheckedChangeListener { _, p1 -> когда (p1) { R.id.rb_tunai -> showTunaiView() R.id.rb_piutang -> showPiutangView() } } rg_pay.check(R.id.rb_tunai) btn_date.setOnClickListener { openSingleDatePickerDialog(getPresenter()?.getSelectedDate()) } btn_bayar.setOnClickListener { показатьLoadingDialog() когда (rg_payation.checkedRadioButtonId) { Р.ид.рб_тунай -> { getPresenter()?.checkTunai() } R.id.rb_piutang -> { getPresenter()?.checkPiutang() } } } // Log.d("no_invoice", счет-фактура) } переопределить удовольствие onCreateOptionsMenu(меню: Меню): Boolean { MenuInflater.inflate(R.menu.menu_scan_search, меню) вернуть super.onCreateOptionsMenu(меню) } переопределить удовольствие onOptionsItemSelected(item: MenuItem): Boolean { когда (пункт?.itemId) { android.R.id.home -> закончить() R.id.action_search -> openChooseProduct() R.id.action_scan -> getPresenter()?.onCheckScan() } вернуть super.onOptionsItemSelected(пункт!!) } переопределить удовольствие onResume() { супер.onResume() панель инструментов настройки() } переопределить удовольствие onDestroy() { супер.onDestroy() getPresenter()?.onDestroy() } переопределить fun showMessage(code: Int, msg: String?) { скрытьLoadingDialog() когда (код) { RestException.CODE_USER_NOT_FOUND -> restartLoginActivity() RestException.CODE_MAINTENANCE → openMaintenanceActivity() RestException.CODE_UPDATE_APP → openUpdateActivity() еще -> { сообщение?.let { тост (это, оно) } } } } переопределить удовольствие openScanPage() { val намерение = Intent(this, ScanCodeActivity::class.java) startActivityForResult (намерение, codeOpenScan) } переопределить fun onNewIntent(intent: Intent?) { super.onNewIntent(намерение) открытьВыбратьПродукт() } //переходим к новому продукту переопределить удовольствие openChooseProduct() { val намерение = if(data.isEmpty()) Intent(this, ChooseProductActivity::class.java) else Intent(this, ActivitySubCategory::class.java).putExtra("данные", данные) startActivityForResult (намерение, кодOpenChooseProduct) } весело openChooseProductData() { val намерение = Intent(this, ChooseProductActivity::class.java) startActivityForResult (намерение, кодOpenChooseProduct) } переопределить fun openNoteDialog(selected: Cart, pos: Int) { val noteDialog = NoteDialog.newInstance() noteDialog.setData(выбрано,поз) noteDialog.show(this.supportFragmentManager, NoteDialog.TAG) } переопределить удовольствие getTotalValue(): Double { val appSession = AppSession() val валюта = appSession.getCurrency(this)!! значение val = tv_total.text.toString().replace(AppConstant.CURRENCY.getCurrencyData(), "").replace(".", "") if (value.isBlank() || value.isEmpty()) { вернуть 0,0 } возвращаемое значение.toDouble() } переопределить удовольствие getInVoice(): String? { val счет = getIntent().getStringExtra("счет") возвратный счет } переопределить удовольствие showContentView() { ll_content.visibility = Вид.VISIBLE ll_error.visibility = Вид.GONE } переопределить удовольствие showErrorView(err: String) { ll_content.visibility = Просмотр.GONE ll_error.visibility = Вид.VISIBLE tv_error.text = ошибка } переопределить удовольствие openSuccessPage(id: String) { val намерение = намерение (это, SuccessAddActivity::class.java) намерение.putExtra(AppConstant.DATA,id) startActivity (намерение) } переопределить fun setCartText(номинал: String) { tv_total.text = номинально tv_subtotal.text = номинально } переопределить fun addCart(data: Cart) { адаптер.addItem(данные) } переопределить fun updateCart(cart: Cart, Position: Int) { адаптер.updateItem(корзина, позиция) } переопределить fun deleteCart(position: Int) { адаптер.deleteItem(позиция) } переопределить удовольствие showTunaiView() { ll_hutang.visibility = Вид.GONE } переопределить удовольствие showPiutangView() { ll_hutang.visibility = Вид.VISIBLE } переопределить удовольствие openSingleDatePickerDialog(выбрано: CalendarDay?) { val dateDialog = SingleDateDialog.newInstance() val сейчас = LocalDate.now() dateDialog.setData(выбрано, сейчас, ноль, -1) dateDialog.show(this.supportFragmentManager, SingleDateDialog.TAG) } переопределить fun openCountDialog(selected: Cart, pos: Int) { val диалог = CartCountDialog.newInstance() диалог.setData(выбрано, позиция, ложь) диалог.шоу(this.supportFragmentManager, CartCountDialog.TAG) } переопределить fun onNoteSaved(selected: Cart, pos: Int) { getPresenter()?.updateCart(выбрано,поз) } переопределить fun onDateClicked(выбрано: CalendarDay?, введите: Int) { getPresenter()?.setSelectedDate(выбрано) если (выбрано == ноль) { et_date.text = "" } еще { et_date.text = Helper.getDateFormat(this, selected.date.toString(), "гггг-ММ-дд", "дд ММММ гггг") } } переопределить fun onCountSaved(selected: Cart, pos: Int) { getPresenter()?.updateCart(выбрано, позиция) } переопределить fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult (код запроса, код результата, данные) if (requestCode == codeOpenScan && resultCode == RESULT_OK) { код val = данные?.getStringExtra(AppConstant.DATA) if (!code.isNullOrBlank() && !code.isNullOrEmpty()) { показатьLoadingDialog() getPresenter()?.searchByBarcode(код) } } else if (requestCode == codeOpenChooseProduct && resultCode == RESULT_OK) { если (данные == ноль) { тост(это «Данные не найдены») возвращаться } if (data.getSerializableExtra(AppConstant.DATA) == null) { тост(это «Данные не найдены») возвращаться } val Product = data.getSerializableExtra(AppConstant.DATA) как продукт если (product.id_product == null) { тост(это «Данные не найдены») } еще { getPresenter()?.checkCart(продукт) } } } } Я хочу знать, какие коды добавить или изменить в своих действиях и фрагментировать файлы с помощью viewBinding
Я пытаюсь перейти на привязку просмотра с синтетической и хочу знать точную модификацию кода, которая мне нужна в файле активности ниже.
В моем build.gradle(app) я удалил «применить плагин: 'kotlin-android-extensions'» и включил viewBinding (viewBinding true}.
В моих файлах kt активности я также удалил синтетические справочные строки импорта. Например
Когда я удаляю «import kotlinx.android.synthetic.main.activity_kulakan.rv_list» в AddOrderActivity.kt ниже, я получаю ошибку «Неразрешенная ссылка: rv_list», если пытаюсь построить.
приватное развлечение renderView() { vallayoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false) rv_list.layoutManager = менеджер макета rv_list.adapter = адаптер Это весь файл AddOrderActivity.kt
id пакета.platinum.android.feature.addOrder.main импортировать android.app.Activity импортировать android.content.Intent импортировать android.os.Bundle импортировать android.view.Menu импортировать android.view.MenuItem импортировать android.view.View импортировать androidx.recyclerview.widget.LinearLayoutManager импортировать androidx.recyclerview.widget.RecyclerView импортировать com.prolificinteractive.materialcalendarview.CalendarDay импортировать идентификатор.platinum.android.R импортировать id.platinum.android.base.BaseActivity импортировать id.platinum.android.feature.choose.addProduct.ActivitySubCategory import id.platinum.android.feature.choose.productAdd.ChooseProductActivity импортировать id.platinum.android.feature.dialog.CartCountDialog импортировать id.platinum.android.feature.dialog.NoteDialog импортировать id.platinum.android.feature.dialog.SingleDateDialog импортировать id.platinum.android.feature.scan.ScanCodeActivity импортировать id.platinum.android.feature.transaction.successadd.SuccessAddActivity импортировать id.platinum.android.models.cart.Cart импортировать id.platinum.android.models.product.Product импортировать id.platinum.android.rest.entity.RestException импортировать id.platinum.android.ui.ext.toast импортировать id.platinum.android.utils.AppConstant импортировать id.platinum.android.utils.AppSession импортировать id.platinum.android.utils.Helper импортировать org.threeten.bp.LocalDate класс AddOrderActivity: BaseActivity(), AddOrderContract.View, SingleDateDialog.Listener, CartCountDialog.Listener,NoteDialog.Listener { сопутствующий объект { var data = "" } частный val-кодOpenScan = 1001 частный val-кодOpenChooseProduct = 1002 частный адаптер val = AddOrderAdapter() переопределить удовольствие createPresenter(): AddOrderPresenter { вернуть AddOrderPresenter(это, это) } переопределить удовольствие createLayout(): Int { вернуть R.layout.activity_add_order } переопределить fun startUpActivity(savedInstanceState: Bundle?) { рендервиев() getPresenter()?.onViewCreated() открытьВыбратьПродукт() } личное развлечение setupToolbar() { supportActionBar?.apply { setDisplayHomeAsUpEnabled (истина) setDisplayShowHomeEnabled (истина) title = getString(R.string.new_add_order) высота = 0f } } личное развлечение renderView() { vallayoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false) rv_list.layoutManager = менеджер макета rv_list.adapter = адаптер val счет = getIntent().getStringExtra("счет") адаптер.callback = объект: AddOrderAdapter.ItemClickCallback { переопределить fun onCountDialog(data: Cart, Position: Int) { openCountDialog (данные, позиция) } переопределить fun onNote(data: Cart, Position: Int) { openNoteDialog (данные, позиция) } переопределить fun onDecrease(data: Cart, Position: Int) { getPresenter()?.decreaseCart(данные, позиция) } переопределить fun onIncrease(data: Cart, Position: Int) { getPresenter()?.increaseCart(данные, позиция) } переопределить fun onDelete(data: Cart, Position: Int) { getPresenter()?.deleteCart(данные, позиция) } } rg_payation.setOnCheckedChangeListener { _, p1 -> когда (p1) { R.id.rb_tunai -> showTunaiView() R.id.rb_piutang -> showPiutangView() } } rg_pay.check(R.id.rb_tunai) btn_date.setOnClickListener { openSingleDatePickerDialog(getPresenter()?.getSelectedDate()) } btn_bayar.setOnClickListener { показатьLoadingDialog() когда (rg_payation.checkedRadioButtonId) { Р.ид.рб_тунай -> { getPresenter()?.checkTunai() } R.id.rb_piutang -> { getPresenter()?.checkPiutang() } } } // Log.d("no_invoice", счет-фактура) } переопределить удовольствие onCreateOptionsMenu(меню: Меню): Boolean { MenuInflater.inflate(R.menu.menu_scan_search, меню) вернуть super.onCreateOptionsMenu(меню) } переопределить удовольствие onOptionsItemSelected(item: MenuItem): Boolean { когда (пункт?.itemId) { android.R.id.home -> закончить() R.id.action_search -> openChooseProduct() R.id.action_scan -> getPresenter()?.onCheckScan() } вернуть super.onOptionsItemSelected(пункт!!) } переопределить удовольствие onResume() { супер.onResume() панель инструментов настройки() } переопределить удовольствие onDestroy() { супер.onDestroy() getPresenter()?.onDestroy() } переопределить fun showMessage(code: Int, msg: String?) { скрытьLoadingDialog() когда (код) { RestException.CODE_USER_NOT_FOUND -> restartLoginActivity() RestException.CODE_MAINTENANCE → openMaintenanceActivity() RestException.CODE_UPDATE_APP → openUpdateActivity() еще -> { сообщение?.let { тост (это, оно) } } } } переопределить удовольствие openScanPage() { val намерение = Intent(this, ScanCodeActivity::class.java) startActivityForResult (намерение, codeOpenScan) } переопределить fun onNewIntent(intent: Intent?) { super.onNewIntent(намерение) открытьВыбратьПродукт() } //переходим к новому продукту переопределить удовольствие openChooseProduct() { val намерение = if(data.isEmpty()) Intent(this, ChooseProductActivity::class.java) else Intent(this, ActivitySubCategory::class.java).putExtra("данные", данные) startActivityForResult (намерение, кодOpenChooseProduct) } весело openChooseProductData() { val намерение = Intent(this, ChooseProductActivity::class.java) startActivityForResult (намерение, кодOpenChooseProduct) } переопределить fun openNoteDialog(selected: Cart, pos: Int) { val noteDialog = NoteDialog.newInstance() noteDialog.setData(выбрано,поз) noteDialog.show(this.supportFragmentManager, NoteDialog.TAG) } переопределить удовольствие getTotalValue(): Double { val appSession = AppSession() val валюта = appSession.getCurrency(this)!! значение val = tv_total.text.toString().replace(AppConstant.CURRENCY.getCurrencyData(), "").replace(".", "") if (value.isBlank() || value.isEmpty()) { вернуть 0,0 } возвращаемое значение.toDouble() } переопределить удовольствие getInVoice(): String? { val счет = getIntent().getStringExtra("счет") возвратный счет } переопределить удовольствие showContentView() { ll_content.visibility = Вид.VISIBLE ll_error.visibility = Вид.GONE } переопределить удовольствие showErrorView(err: String) { ll_content.visibility = Просмотр.GONE ll_error.visibility = Вид.VISIBLE tv_error.text = ошибка } переопределить удовольствие openSuccessPage(id: String) { val намерение = намерение (это, SuccessAddActivity::class.java) намерение.putExtra(AppConstant.DATA,id) startActivity (намерение) } переопределить fun setCartText(номинал: String) { tv_total.text = номинально tv_subtotal.text = номинально } переопределить fun addCart(data: Cart) { адаптер.addItem(данные) } переопределить fun updateCart(cart: Cart, Position: Int) { адаптер.updateItem(корзина, позиция) } переопределить fun deleteCart(position: Int) { адаптер.deleteItem(позиция) } переопределить удовольствие showTunaiView() { ll_hutang.visibility = Вид.GONE } переопределить удовольствие showPiutangView() { ll_hutang.visibility = Вид.VISIBLE } переопределить удовольствие openSingleDatePickerDialog(выбрано: CalendarDay?) { val dateDialog = SingleDateDialog.newInstance() val сейчас = LocalDate.now() dateDialog.setData(выбрано, сейчас, ноль, -1) dateDialog.show(this.supportFragmentManager, SingleDateDialog.TAG) } переопределить fun openCountDialog(selected: Cart, pos: Int) { val диалог = CartCountDialog.newInstance() диалог.setData(выбрано, позиция, ложь) диалог.шоу(this.supportFragmentManager, CartCountDialog.TAG) } переопределить fun onNoteSaved(selected: Cart, pos: Int) { getPresenter()?.updateCart(выбрано,поз) } переопределить fun onDateClicked(выбрано: CalendarDay?, введите: Int) { getPresenter()?.setSelectedDate(выбрано) если (выбрано == ноль) { et_date.text = "" } еще { et_date.text = Helper.getDateFormat(this, selected.date.toString(), "гггг-ММ-дд", "дд ММММ гггг") } } переопределить fun onCountSaved(selected: Cart, pos: Int) { getPresenter()?.updateCart(выбрано, позиция) } переопределить fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult (код запроса, код результата, данные) if (requestCode == codeOpenScan && resultCode == RESULT_OK) { код val = данные?.getStringExtra(AppConstant.DATA) if (!code.isNullOrBlank() && !code.isNullOrEmpty()) { показатьLoadingDialog() getPresenter()?.searchByBarcode(код) } } else if (requestCode == codeOpenChooseProduct && resultCode == RESULT_OK) { если (данные == ноль) { тост(это «Данные не найдены») возвращаться } if (data.getSerializableExtra(AppConstant.DATA) == null) { тост(это «Данные не найдены») возвращаться } val Product = data.getSerializableExtra(AppConstant.DATA) как продукт если (product.id_product == null) { тост(это «Данные не найдены») } еще { getPresenter()?.checkCart(продукт) } } } } Я хочу знать, какие коды добавить или изменить в своих действиях и фрагментировать файлы с помощью viewBinding
Мобильная версия