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