在Android工作室中从Activity更改为片段

问题描述 投票:-1回答:1

我在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;
}

}

android android-fragments
1个回答
0
投票

您不能直接从fragment使用startActivity(),因此您可以使用getActivity()。startActivity()或getContext.startActivity();我不确定,所以试试两个。另外,提供错误,我将能够说出确切的问题))而且,尽量不要在活动内部使用函数,最好将它们放入另一个类中。如果你要使用活动中的东西,了解接口))希望它有帮助))

© www.soinside.com 2019 - 2024. All rights reserved.