Переход от Активности к фрагменту в студии Android - PullRequest
0 голосов
/ 12 апреля 2019

Я использую новичка в разработке Android-студии.Я пытаюсь изменить код активности на фрагмент кода.Тем не менее, до сих пор мне удалось, я обнаружил трудность в этом фрагменте кода:

public void logout(){

        editor.clear();
        editor.commit();
        Intent i = new Intent(context, LoginActivity.class);
        context.startActivity(i);
        ((HomeActivity) context).finish();
    }

В основном я хочу изменить HomeActivity с фрагментом, который находится в моей mainActivity, и я попытался заменить HomeActivity с getActivity(), но помечает его как недействительный, поскольку этот файл Java находится не во фрагменте, а в отдельном файле Java

Код фрагмента:

public class AccountFragment extends Fragment {

private static final String TAG = MainActivity.class.getSimpleName();//getting the info
private TextView name, email;
private Button btn_logout;

SessionManager sessionManager;
String getId;
private static String URL_READ = "http://192.168.1.123:81/android_register_login/read_detail.php";
private static String URL_EDIT = "http://192.168.1.123:81/android_register_login/edit_detail.php";

private Menu action;

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_account, container, false);

    sessionManager = new SessionManager(getActivity());
    sessionManager.checkLogin();

    Button btn_logout = (Button) view.findViewById(R.id.btn_logout);
    btn_logout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            sessionManager.logout();
            Intent logout = new Intent(getActivity(), LoginActivity.class);
            startActivity(logout);
        }
    });
    return view;
}

}

1 Ответ

0 голосов
/ 12 апреля 2019

Вы не можете использовать startActivity () напрямую из фрагмента, поэтому вы можете использовать getActivity (). StartActivity () или getContext.startActivity ();Я не уверен, так что попробуйте оба.Кроме того, предоставьте ошибку, я смогу сказать точную проблему)) Более того, старайтесь не использовать функции изнутри деятельности, лучше поместить их в другой класс.И если ты собираешься использовать что-то из деятельности, узнай об интерфейсах)) Надеюсь, это поможет))

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