Мой основной фрагмент кода не выполняется - PullRequest
1 голос
/ 16 марта 2019

Я пишу приложение для Android, используя Android Studio. До сих пор я создал операцию с вкладками, которая будет моей основной деятельностью, и другую операцию, которая будет открываться нажатием кнопки на одной из вкладок в моей основной деятельности с вкладками. Проблема в том, что я пытался сделать это несколькими способами, но кажется, что код в моем public View onCreateView просто не выполняется вообще. Вот код, который я пытаюсь запустить:

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_main, container, false);
    Button mainSignInButton = (Button) view.findViewById(R.id.mainSignInButton);
    mainSignInButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(getActivity() ,LoginActivity.class);
            startActivity(i);
        }
    });

    return view;
}

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

1 Ответ

0 голосов
/ 16 марта 2019

Прежде всего, делегируйте Activity на startActivity().Попробуйте что-то вроде следующего для своего фрагмента:

public class FragmentMain extends Fragment {

   private OnInteractionListener mListener;

   public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_main, container, false);
        Button mainSignInButton = (Button) view.findViewById(R.id.mainSignInButton);
        mainSignInButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mListener.onClickSignInButton()
            }
        });

        return view;
    }

    public interface OnInteractionListener {
        void onClickSignInButton();
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try {
            mListener = (OnInteractionListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString() + " must implement OnInteractionListener");
        }
    }

    @Override
    public void onDetach() {
        super.onDetach();
        mListener = null
    }

}

В своей деятельности попробуйте выполнить следующее:

public class MyActivity extends AppCompatActivity implements FragmentMain.OnInteractionListener {

    ...

    @Override
    public void onClickSignInButton() {
        Intent i = new Intent(this, LoginActivity.class);
        startActivity(i);
    }

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