簡體   English   中英

如何在操作欄中執行注銷

[英]how to perform logout in actionbar

我需要幫助。 我的應用程序中有動作欄。 我想在其中注銷。 我怎樣才能做到這一點? 我已經有了這些東西。 但是我沒有session.java。 我試圖復制其他人的代碼,但顯示出一些錯誤。 請幫我。 多謝你們!

  @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();
  }

您需要使用共享的首選項來保持會話,我認為session.logout(); 此方法是在一個類中創建的,他們使用共享的首選項保留會話。 好的,現在我將告訴您如何保持登錄會話以及如何注銷。

第一步:當您嘗試登錄並通過JSON Api或從sqlite數據庫獲得成功響應時,只需使用共享首選項並在那里設置正標志值即可。

setp two:然后在onOptionsItemSelected方法的工具欄上單擊注銷按鈕時,只需將該共享首選項的值更改為負即可。

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();

                }
            });


        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM