как перейти от действия к фрагменту по нажатию кнопки, в нижней части навигации я использую фрагмент - PullRequest
0 голосов
/ 22 февраля 2019

Я использую три фрагмента в нижней панели навигации в своем приложении для Android, а в одном из фрагментов я использую представление календаря и по щелчку календарной даты я иду на мероприятие, и там я дал кнопку и нанажатием кнопки я пытаюсь перейти к одному из фрагментов, которые я использую в нижней части навигации.Кто-нибудь может сказать мне, как это сделать?

Я использую этот код:

    val ft = supportFragmentManager.beginTransaction()
            ft.replace(R.id.fragmentContainer, fragment)
           ft.commit()

, но он не работает.Я попробовал эту строку кода:

var i=Intent(this,RemarksFragment::class.java)
        startActivity(i)

Но это также не работает.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Используйте начальное действие для метода результата:

val intent = Intent(this,CalendarActivity::class.java)
startActivityForResult(intent,REQUEST_CODE(int))

Затем при повторном нажатии действия календаря вы можете переопределить метод onBackPressed следующим образом:

 override fun onBackPressed() {
   val data = Intent().putExtra("key","fragment index to switch")
   setResult(Activity.RESULT_OK,data)
   finish()
} 

Теперь в вашем действиис нижней панелью навигации:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == REQUEST_CODE(int) && resultCode == RESULT_OK) {
        val index = data.getIntExtra("key")
        //Then switch your fragment here.
    }
}

Если вы не хотите переключаться, вы можете установить результат следующим образом:

setResult(Activity.RESULT_CANCELLED)

Надеюсь, это поможет.

0 голосов
/ 22 февраля 2019

onClick календарной даты, когда вы намереваетесь заняться ActivityX.как вы хотите вернуться к предыдущему действию, которое имеет нижнюю панель навигации.

запустить упражнение для результата.так что вы можете вернуться к операции из ActivityX с некоторыми данными.

Inside BottomNavActivity

val intent = Intent(this@BottomNavActivity, ActivityX::class.java); 
startActivityForResult(intent, 1001); 

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if(requestCode == 1001 && data != null) {
        if(resultCode == RESULT_OK) {
            // your data will be here
           String value = data.getStringExtra("KEY");
              //based on your value, launch the fragment
        }
    }
}

в ActivityX

onClick(view : View) {
     val intent = getIntent();
     intent.putExtra("KEY", "VALUE");
     setResult(RESULT_OK, intent);
     finish();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...