Я хочу передать данные всплывающему диалогу - PullRequest
1 голос
/ 27 апреля 2019

в котлине… Я хочу передать данные в пользовательское всплывающее окно, которое расширяет dialogFragment, чтобы кто-нибудь здесь знал, как я могу передать данные в такой фрагмент?У меня ошибка каждый раз, когда я передаю данные в конструктор.Пожалуйста, помогите.

передать данные в конструктор

class PopUpClass : DialogFragment() {



    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        var v = inflater.inflate(R.layout.poplayout,container,false 

        return v
    }
//tried to pass the data in the constructor and then handle it but did not work

Ответы [ 2 ]

2 голосов
/ 29 апреля 2019

Ознакомьтесь с документацией фрагмента диалога .

Вам необходимо создать функцию getInstance, которая передает ваши параметры через пакет во фрагмент.Как это:

static MyDialogFragment newInstance(int num) { 
 MyDialogFragment f = new MyDialogFragment(); // Supply num input as an argument. 
 Bundle args = new Bundle(); 
 args.putInt("num", num); 
 f.setArguments(args); 
 return f;
}
1 голос
/ 29 апреля 2019

Вот как вы можете сделать это в Kotlin, сначала объявите объект-компаньон с экземпляром вашего класса фрагмента

companion object {
@JvmStatic //This can be avoided if you are in a complete Kotlin project
fun newInstance(content: String): PopUpClass {
  val args = Bundle()
  args.putString("content", content)
  val fragment = PopUpClass()
  fragment.arguments = args
  return fragment
 }
}

Внутри onCreate () или onViewCreated () вашего фрагмента вы можете получить такие данные, какthis

val dataPassed: String? = arguments?.getString("content")

Вызовите newInstance вместо конструктора из родительского действия или фрагмента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...