首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在actionbar中执行注销操作

如何在actionbar中执行注销操作
EN

Stack Overflow用户
提问于 2017-12-28 01:17:41
回答 2查看 65关注 0票数 0

我需要帮助。我的应用程序中有actionbar。我要把我的注销记录放进去。我该怎么做呢?我已经有这些东西了。但是我没有那个session.java。我曾试图复制别人的代码,但它显示了一些错误。请帮帮我。谢谢你们!

代码语言:javascript
复制
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        return super.onCreateOptionsMenu(menu);
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            logout();
            return true;
        }
        return super.onOptionsItemSelected(item);
  }
  private void logout() {
        session.logout();
        startActivity(new Intent(this, MainActivity.class));
        finish();
  }
EN

回答 2

Stack Overflow用户

发布于 2017-12-28 02:05:58

你需要使用共享首选项来保持会话,我认为session.logout();这个方法是在一个类中创建的,在这个类中,他们使用共享首选项来保持会话。好的,现在我将告诉你如何保持你的登录会话和如何注销。

第一步:当您尝试登录并通过JSON Api或从您的sqlite数据库获得成功响应时,只需使用共享首选项并在其中设置正标志值。

设置2:然后在onOptionsItemSelected方法中单击工具栏中的注销按钮时,只需将共享首选项的值更改为负值。

票数 0
EN

Stack Overflow用户

发布于 2017-12-28 02:24:11

代码语言:javascript
复制
Like this sir?



public class LoginActivity extends AppCompatActivity {


        SharedPreferences sharedpreferences;

        public static final String my_shared_preferences = "my_shared_preferences";
        public static final String session_status = "session_status";
        Boolean session = false;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);


            final TextView mShowDialog =(TextView) findViewById(R.id.txtShowDialog);
            final TextView tvRegisterLink = (TextView) findViewById(R.id.tvRegisterLink);

            //Check session login if TRUE then go directly MainActivity
            sharedpreferences = getSharedPreferences(my_shared_preferences, Context.MODE_PRIVATE);
            session = sharedpreferences.getBoolean(session_status, false);


            if (session) {
                Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                finish();
                startActivity(intent);
            }



            tvRegisterLink.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent registerIntent = new Intent(LoginActivity.this, RegisterActivity.class);
                    LoginActivity.this.startActivity(registerIntent);
                }
            });
            mShowDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    AlertDialog.Builder mbuilder = new AlertDialog.Builder(LoginActivity.this);
                    View mView = getLayoutInflater().inflate(R.layout.dialog_login,null);
                     final EditText hehe=  mView.findViewById(R.id.etUsername);
                    final EditText hehe1=  mView.findViewById(R.id.etPassword);
                    final Button bLogin =  mView.findViewById(R.id.bSignIn);

                   bLogin.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            final String Username = hehe.getText().toString();
                             final String Password = hehe1.getText().toString();

                            // Response received from the server
                            Response.Listener<String> responseListener = new Response.Listener<String>() {
                                @Override
                                public void onResponse(String response) {
                                    try {
                                        JSONObject jsonResponse = new JSONObject(response);
                                        boolean success = jsonResponse.getBoolean("success");

                                        if (success) {

                                            SharedPreferences.Editor editor = sharedpreferences.edit();
                                            editor.putBoolean(session_status, true);
                                            Intent intent = new Intent(LoginActivity.this, MainActivity.class);
                                            LoginActivity.this.startActivity(intent);
                                        } else {
                                            AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this);
                                            builder.setMessage("Login Failed")
                                                    .setNegativeButton("Retry", null)
                                                    .create()
                                                    .show();
                                        }

                                    } catch (JSONException e) {
                                        e.printStackTrace();
                                    }
                                }
                            };

                            LoginRequest loginRequest = new LoginRequest(Username, Password, responseListener);
                            RequestQueue queue = Volley.newRequestQueue(LoginActivity.this);
                            queue.add(loginRequest);
                        }
                    });
                    mbuilder.setView(mView);
                    AlertDialog dialog = mbuilder.create();
                    dialog.show();

                }
            });


        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47996149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档