Numberpicker отправляет данные в домашний фрагмент (фрагмент на фрагмент)

#android #kotlin #fragment #numberpicker

#Android #kotlin #фрагмент #numberpicker

Вопрос:

У меня есть приложение, у которого есть viewpagers, а внутри — numberpicker. Я пытаюсь отправить эти данные в свой домашний фрагмент, но сбой моего приложения. Это мой исходный код. Что я делаю не так?

Создать интерфейс для связи

 interface Communicator {
fun passData(numberpicker: NumberPicker) {

}
  

Это мой фрагмент с numberpicker

lateinit var comm: коммуникатор

 override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    // Inflate the layout for this fragment
 val view =  inflater.inflate(R.layout.fragment_period_length, container, false)

  view.number_picker_period?.minValue = 21
    view.number_picker_period?.maxValue = 35
    view.number_picker_period?.wrapSelectorWheel = true

    val viewPager = activity?.findViewById<ViewPager2>(R.id.viewPager)

    view.next_txt_period.setOnClickListener {
        viewPager?.currentItem = 1
        comm.passData(view.number_picker_period)


    }






 return view
}
  

Это MainActivity

   val fragment1 = DaysLength()
    supportFragmentManager.beginTransaction().replace(R.id.content_id, fragment1).commit()



}

override fun passData(numberpicker: NumberPicker) {
    val bundle = Bundle()
    bundle.putString("input_txt", number_picker_period.toString())

    val transaction = this.supportFragmentManager.beginTransaction()
    val fragment2 = HomeFragment()
    fragment2.arguments = bundle
}
  

Мой домашний фрагмент

   var inputtext: String? = ""

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    // Inflate the layout for this fragment
    val view = inflater.inflate(R.layout.fragment_home, container, false)

    inputtext = arguments?.getString("input_txt")

    view.output_numberpicker.text = inputtext

    return view
  

Что я делаю не так?

Ошибка

  Unable to start activity ComponentInfo{com.example.oapp/com.example.oapp.MainActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f080067 (com.example.oapp:id/content_id) for fragment DaysLength{aa77410}
  

Комментарии:

1. Не могли бы вы указать более подробную информацию в MainActivity?

Ответ №1:

ваша основная деятельность завершается сбоем в этой строке, поскольку она не знает, что такое представление «number_picker_period»

   bundle.putString("input_txt", number_picker_period.toString())
  

попробуйте получить доступ к средству выбора номера через параметр в функции с именем «NumberPicker» Или, альтернативно, измените функцию интерфейса passData, чтобы возвращать строковое значение вместо всего NumberPicker