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

Привет. Я пытаюсь выяснить, как заменить фрагмент, нажав на кнопку внутри фрагмента.

Я пытался заглянуть в эту статью , но у меня это не сработало.

 View view = getSupportFragmentManager().findFragmentById(R.id.fragment_container).getView();
    btnGoToSignUp = view.findViewById(R.id.btnGoToSignUp);

Я пробовал это, но появляется ошибка

Причина: java.lang.NullPointerException: попытка вызвать виртуальный метод 'android.view.View android.support.v4.app.Fragment.getView ()' по нулевой ссылке на объект

1 Ответ

0 голосов
/ 06 января 2019

Вы могли бы просто сделать это:

Интерфейс:

public interface BtnClickable {
    void myClickMethod(View v);
}

Фрагмент:

    public class SomeFragment  {
BtnClickable btnClickable;
    //...onCreateView, etc.

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
    View root = inflater.inflate(R.layout.fragment_add_note, container, false);
    Button btnGoToSignUp = root.findViewById(R.id.btnGoToSignUp);

    btnGoToSignUp.setOnClickListener(new OnClickListener() {
        public void onClick(View v)
        {
    btnClickable.myClickMethod(v);
        } 
    });



    }
public static void setClickListener(BtnClickable listener){
btnClickable=listener;
}

Активность:

    class MyActivity implements BtnClickable {

        //...onCreate etc instantiating your fragments
               public void onCreate(Bundle savedInstanceState)
    {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.filters); 
        SomeFragment.setClickListener(this); 

    }

        public void myClickMethod(View v) {
       // you can listen here for btn clicked 

        }



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