Передавать значение из активности в текущий активный фрагмент, когда EditTextvalue изменяется каждый раз

Вариант 1. Создайте проект.

Вариант 2. используйте библиотеку ButterKnife вместо findViewById.

1.) импортируйте эту библиотеку. реализация: com.jakewharton: butterknife: 8.8.1 'annotationProcessor' com.jakewharton: butterknife-компилятор: 8.8.1 '

2) @BindView (R.id.HomeButton) ImageButton homebtn;

@BindView(R.id.MenuButton)
ImageButton menubtn;

@BindView(R.id.MapButton)
ImageButton mapbtn;

После этого привяжите метод imageButton в oncreate () ... 3) ButterKnife.bind (this);

0
задан bolasta 20 January 2019 в 07:15
поделиться

2 ответа

Я бы проголосовал против этого вопроса, но вы, кажется, в трудном положении.

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

Вот что я хотел бы сделать:

 //Set the edit text on a changed listener
    editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {


            }

            @Override
            public void afterTextChanged(Editable s) {
                // Pass values from your fragment to your other fragment

        Bundle b = new Bundle();
    b.putString("city", s);

    FragmentB fragB = new FragmentB();
    fragB.setArguments(b); 
    getFragmentManager().beginTransaction().replace(R.id.your_container, fragB);

            }
        });





Then you have to receive your values in the fragment

    Bundle b = this.getArguments();
    if(b != null){
       String city = b.getString("city");
    }

, если ваше значение поиска связано с действием, просто передайте значение от действия до фрагмента:

  editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {

        Bundle bundle = new Bundle();
        bundle.putString(s, "city");
        tab1.setArguments(bundle);


            }
        });

Затем получите аргументы в своем фрагменте

       if (getArguments() != null) {
            String city = getArguments().getString("city);
       }

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

0
ответ дан KARAM JABER 20 January 2019 в 07:15
поделиться

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

https://github.com/greenrobot/EventBus [110 ], http://greenrobot.org/eventbus/

0
ответ дан Ahmed Karam 20 January 2019 в 07:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: