Как я могу передать данные из Activity во фрагмент BottomSheet? - PullRequest
0 голосов
/ 11 июля 2019

Я запутался в использовании фрагмента в BottomSheet. Я использовал этот урок: https://blog.mindorks.com/android-bottomsheet-in-kotlin

Эта вещь сама по себе в основном работает - BottomSheet отображается и скрывается всякий раз, когда я хочу, , но я хочу передавать туда некоторые данные динамически , в соответствии с элементом, на который я нажимаю из списка.

Вот как это работает в коде в соответствии с руководством:

// Fragment creation
var bottomSheetFragment : Fragment? = null
bottomSheetFragment = supportFragmentManager.findFragmentById(R.id.filter_fragment)

// Behavior configuration
private var mBottomSheetBehavior: BottomSheetBehavior<View?>? = null
bottomSheetFragment?.let {
        BottomSheetBehavior.from(it.view)?.let { bsb ->
            bsb.state = BottomSheetBehavior.STATE_HIDDEN
            mBottomSheetBehavior = bsb
        }
    }
}

// How we show and hide it
fun show(){
   mBottomSheetBehavior?.state = BottomSheetBehavior.STATE_EXPANDED
}

fun hide(){
   mBottomSheetBehavior?.state = BottomSheetBehavior.STATE_COLLAPSED
}

Итак, все работает, и нет фрагмента, где я мог бы использовать NewInstance для передачи данных, как обычно. Как я могу это сделать в этом случае?

Спасибо!

1 Ответ

1 голос
/ 11 июля 2019

вы можете использовать связку для передачи данных из действия во фрагмент, как это

Bundle bundle = new Bundle();
String myMessage = "Stack Overflow is cool!";
bundle.putString("message", myMessage );
FragmentClass fragInfo = new FragmentClass();
fragInfo.setArguments(bundle);

во фрагменте вы можете получить доступ к этому комплекту

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle 
 savedInstanceState) {
  String myValue = this.getArguments().getString("message");
   ...
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...