在Android Studio中从“活动”更改为片段

时间:2019-04-12 17:44:52

标签: android android-fragments

我正在android studio开发中使用初学者。我正在尝试将我的活动代码更改为片段代码。但是到目前为止,我设法在这段代码中遇到了困难:

public void logout(){

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

基本上,我想用驻留在mainActivity中的一个片段更改HomeActivity,并且我尝试用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 :(得分:0)

您不能直接从片段中使用startActivity(),因此可以使用getActivity()。startActivity()或getContext.startActivity();。我不确定,因此请同时尝试。 此外,提供错误,我可以说出确切的问题)) 此外,请尽量不要使用活动内部的函数,最好将它们放在另一个类中。 如果您想从活动中使用某些东西,请了解接口)) 希望对您有帮助))