#android #kotlin #android-fragments
#Android #kotlin #android-фрагменты
Вопрос:
Я передаю объект класса модели из одного фрагмента в другой фрагмент. Я могу успешно получить «CustomerName» в получаемом фрагменте, но список всегда пуст. Это класс модели:
@Parcelize
data class Bill (var customerName:String,var listOfStart:List<Int>):Parcelable
Фрагмент кода отправляющего фрагмента:
customerName = etName.editText?.text.toString()
start = etStart.editText?.text.toString().toInt()
listOfStart.add(start)
val bill=Bill(customerName,listOfStart)
Log.d("Test", "Name when sending: " customerName)
Log.d("Test", "List contents when sending: " listOfStart)
val action: NavDirections =HomeFragmentDirections.actionHomeFragmentToResultFragment(bill)
findNavController().navigate(action)
Фрагмент кода принимающего фрагмента:
private val fragmentArgs by navArgs<ResultFragmentArgs>()
override fun onViewCreated(view: View, savedInstanceState: Bundle?)
{
Log.d("Test", "Name when receiving": " fragmentArgs.args.customerName)
Log.d("Test", "List contents when receiving": " fragmentArgs.args.listOfStart)
}
Журнал cat
2020-10-26 12:16:17.786 14893-14893/tahir.billcalculator D/Test: Name when sending: Nametest
2020-10-26 12:16:17.786 14893-14893/tahir.billcalculator D/Test: List contents when sending: [12]
2020-10-26 12:16:17.878 14893-14893/tahir.billcalculator D/Test: Name when receiving: Nametest
2020-10-26 12:16:17.878 14893-14893/tahir.billcalculator D/Test: List contents when receiving: []
Комментарии:
1. привет из вашего logcat видно, что в первый раз вы получили свой список
List contents when sending: [12]
здесь, но во второй раз вы ничего не получили, что означает, что может возникнуть какая-то проблема при добавлении данных в список во второй раз. Я бы посоветовал попробовать указать точку отладки на этомval action: NavDirections =HomeFragmentDirections.actionHomeFragmentToResultFragment(bill)
и в вашемviewCreated
методе, чтобы проверить, являются ли переданные и полученные данные правильными или нет.2. Я проверил, как вы предложили. Он передает данные правильно. Но на принимающей стороне принимается только имя, а список пуст
3. Отправьте определение HomeFragmentDirections.actionHomeFragmentToResultFragment(счет) . Что вы делаете в этом методе