Я пытаюсь добавить свой фрагмент в стек.Поэтому при нажатии следующей кнопки фрагмент будет добавлен в стек.Но потом у меня возникла проблема, что идентификатор контейнера не найден.Вот мой код в следующей кнопке:
override fun onNextClicked(callback: StepperLayout.OnNextClickedCallback?) {
val myFragment = MotorFragment()
val fragmentManager = fragmentManager
val fragmentTransaction = fragmentManager!!.beginTransaction()
fragmentTransaction.add(R.id.container, myFragment)
fragmentTransaction.addToBackStack("firstFrag")
fragmentTransaction.commit()
Toast.makeText(context,"firstFrag Added", Toast.LENGTH_SHORT).show()
callback?.goToNextStep()
}
Я гуглю его, но ни одно из решений не работает для меня.Я пытаюсь изменить
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
getReligion()
}
на это:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(null)
getReligion()
}
и все еще получаю ту же ошибку.
А вот мой код создания:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val v = inflater.inflate(R.layout.fragment_spk_motor, container, false)
return v
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
getReligion()
}
Я ожидаю, что при нажатии следующей кнопки не будет принудительно закрываться и успешное добавление в стек.Помогите пожалуйста.
Мой полный код:
class MotorFragment : Fragment(), Step, BlockingStep {
var datareligion: ArrayList<MasterReligion?>? = null
lateinit var dataManager: DataManager
val myCalendar = Calendar.getInstance()
companion object {
fun newInstance(): MotorFragment {
return MotorFragment()
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val v = inflater.inflate(R.layout.fragment_spk_motor, container, false)
return v
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
getReligion()
}
fun getReligion() {
API.getreligion().enqueue(object : Callback<ArrayList<MasterReligion>> {
override fun onResponse(call: Call<ArrayList<MasterReligion>>, response: Response<ArrayList<MasterReligion>>) {
if (response.code() == 200) {
datareligion = ArrayList()
datareligion?.add(0, null)
response.body()?.forEach { datareligion?.add(it) }
val adapter = MyStepFragment.CustomAdapter<MasterReligion?>(activity, R.layout.spinner_custom, R.layout.spinner_dropdown_item, datareligion?.toTypedArray()!!)
spnOTR.adapter = adapter
}else{
Toast.makeText(activity, "Error", Toast.LENGTH_LONG).show()
}
}
override fun onFailure(call: Call<ArrayList<MasterReligion>>, throwable: Throwable) {
Toast.makeText(activity, "Please check your connection", Toast.LENGTH_LONG).show()
}
})
spnOTR?.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parentView: AdapterView<*>, selectedItemView: View?, position: Int, id: Long) {
if (selectedItemView == null) {
Toast.makeText(context, "Tipe harga jual tidak terpilih", Toast.LENGTH_SHORT).show()
} else {
val data = position
val prefs = PreferenceManager.getDefaultSharedPreferences(activity!!.baseContext) //context
val prefEditor = prefs.edit()
prefEditor.putInt("savedValue", data)
prefEditor.apply()
}
}
override fun onNothingSelected(parentView: AdapterView<*>) {
Toast.makeText(context, "Nothing selected", Toast.LENGTH_SHORT).show()
}
}
}
override fun verifyStep(): VerificationError? {
return null
}
override fun onSelected() {}
override fun onError(error: VerificationError) {}
override fun onBackClicked(callback: StepperLayout.OnBackClickedCallback?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onCompleteClicked(callback: StepperLayout.OnCompleteClickedCallback?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onNextClicked(callback: StepperLayout.OnNextClickedCallback?) {
val myFragment = MotorFragment()
val fragmentManager = fragmentManager
val fragmentTransaction = fragmentManager!!.beginTransaction()
fragmentTransaction.add(R.id.container, myFragment)
fragmentTransaction.addToBackStack("firstFrag")
fragmentTransaction.commit()
Toast.makeText(context,"firstFrag Added", Toast.LENGTH_SHORT).show()
callback?.goToNextStep()
}
}