Android:保持与复选框的连接

Android:保持与复选框的连接,android,login,logout,android-checkbox,Android,Login,Logout,Android Checkbox,我想在登录阶段添加一个复选框,当点击应用程序时,记住用户在未注销的情况下退出, 但是,如果未单击此复选框,则用户可以访问多个活动,但如果用户退出而未注销,则仍然会注销。 这是我的代码: public class MainActivity extends Activity implements OnClickListener{ private EditText username=null; private EditText password=null; privat

我想在登录阶段添加一个复选框,当点击应用程序时,记住用户在未注销的情况下退出, 但是,如果未单击此复选框,则用户可以访问多个活动,但如果用户退出而未注销,则仍然会注销。 这是我的代码:

public class MainActivity extends Activity implements OnClickListener{

    private EditText  username=null;
    private EditText  password=null;

    private Button login, registration;


    public static final String MyPREFERENCES = "MyPrefs" ;
    public static final String user = "nameKey"; 
    public static final String pass = "passwordKey"; 


    SharedPreferences sharedpreferences;

    public boolean isChecked = false;
    public boolean isunChecked = true;



    private CheckBox check;

    String a,b, result,z, clic;

    Class<?> activityClass;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);
        username = (EditText)findViewById(R.id.editText1);
        password = (EditText)findViewById(R.id.editText2);

        registration = (Button)findViewById(R.id.button2);
        login = (Button)findViewById(R.id.button1);

        TextView text2 = (TextView) findViewById(R.id.tv);


        login.setOnClickListener(this);
        registration.setOnClickListener(this);
        check = (CheckBox) findViewById(R.id.checkBox);
        check.setOnClickListener(this);


    }


    @Override
    public void onClick(View v) {

        switch (v.getId()) {
        case R.id.button1 : {

            login.setEnabled(false);
            registra.setEnabled(true);
            registra.setClickable(false);
            username.setFocusable(false);
            password.setFocusable(false);


            if (check.isChecked()) {
                clic = "Checked";
                System.out.println("CheckBox is checked");
            }
            else{
                clic = "no_Checked";
                System.out.println("CheckBox is unchecked");
            }

            LoginTask task = new LoginTask(username,password);
            task.execute(null,null,null);


            break;
        }
        case R.id.button2: {

            registration.setEnabled(false);
            login.setEnabled(true);
            login.setClickable(false);

            registration(v);
            break;
        }



        }
    }



    public class LoginTask extends AsyncTask<Void, Void, String> {

        public LoginTask(EditText username2, EditText password2) {

        }

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
                }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);



            if(result.equals("ok")){
                Toast.makeText(MainActivity.this, "ok", Toast.LENGTH_SHORT).show();

                }
            else {

                login.setEnabled(true);
                login.setClickable(true);

                registration.setEnabled(true);
                registration.setClickable(true);


                username.setFocusableInTouchMode(true);
                password.setFocusableInTouchMode(true);

            }
        }

        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);

        }

        @Override
        protected String doInBackground(Void... params) {

            String result = null;
            Editor editor = sharedpreferences.edit();

            try {
                [....]

                String u = username.getText().toString();
                String p = password.getText().toString();


                editor.putString(user, u);
                editor.putString(pass, p);


                if(clic.equals("checked
                    editor.putBoolean("isChecked", isChecked);
                    System.out.println("clic");
                }else{
                    editor.putBoolean("isChecked", isunChecked);
                    System.out.println("no_clic");
                }


                editor.commit();

                Intent intent = new Intent(getApplicationContext(), HomeActivity.class);

                startActivity(intent);


            }

            catch (Exception e) {
                System.err.println(e.getMessage());
                e.printStackTrace();

                return result=e.getMessage();

            }
            return result="ok";

        }


    }


    @Override
    protected void onResume() {
        sharedpreferences=getSharedPreferences(MyPREFERENCES, 
                Context.MODE_PRIVATE);



        if(isChecked = sharedpreferences.getBoolean("isChecked", true)){

            Toast.makeText(MainActivity.this, "login", Toast.LENGTH_SHORT).show();

            if (sharedpreferences.contains(user))
            {
                if(sharedpreferences.contains(pass)){

                    Toast.makeText(MainActivity.this, "login", Toast.LENGTH_SHORT).show();
                    System.out.println("    CheckBox is checked");
                    try {
                        SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE);

                        activityClass = Class.forName(prefs.getString("activity1", FirstActivity.class.getName()));
                        prefs.getString("activity2", SecondActivity.class.getName());


                    } catch(ClassNotFoundException ex) {

                    }


                    Intent i = new Intent(this, activityClass);
                    startActivity(i);

                }
            }

        }else{

            Toast.makeText(MainActivity.this, "logout", Toast.LENGTH_SHORT).show();
            System.out.println("logout");
            //logout();

        }
        super.onResume();
    }



    public void registration (View view){

        Intent intent1;
        intent1 = new Intent (this, Registration.class);
        startActivity(intent1);
    }


    public void onPause() {
        super.onPause();
        this.finish();
    }

    public void closing() {
        finish();
    }
public类MainActivity扩展活动实现OnClickListener{
私有EditText用户名=null;
私有EditText密码=null;
私人按钮登录、注册;
公共静态最终字符串MyPREFERENCES=“MyPrefs”;
公共静态最终字符串user=“nameKey”;
公共静态最终字符串pass=“passwordKey”;
SharedReferences SharedReferences;
公共布尔值isChecked=false;
公共布尔值isunChecked=true;
私人复选框检查;
字符串a,b,result,z,clic;
类活动类;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_main);
用户名=(EditText)findViewById(R.id.editText1);
密码=(EditText)findViewById(R.id.editText2);
注册=(按钮)findViewById(R.id.button2);
登录=(按钮)findViewById(R.id.button1);
TextView text2=(TextView)findViewById(R.id.tv);
login.setOnClickListener(this);
registration.setOnClickListener(此);
check=(复选框)findViewById(R.id.CheckBox);
check.setOnClickListener(这个);
}
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.button1:{
login.setEnabled(false);
注册。设置启用(真);
注册。可点击设置(错误);
username.setFocusable(false);
password.setFocusable(false);
如果(检查.isChecked()){
clic=“已检查”;
System.out.println(“选中复选框”);
}
否则{
clic=“未选中”;
System.out.println(“复选框未选中”);
}
登录任务=新登录任务(用户名、密码);
task.execute(null,null,null);
打破
}
案例R.id.按钮2:{
registration.setEnabled(false);
login.setEnabled(true);
login.setClickable(false);
注册(五);
打破
}
}
}
公共类LoginTask扩展异步任务{
公共登录任务(EditText用户名2、EditText密码2){
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
}
@凌驾
受保护的void onPostExecute(字符串结果){
super.onPostExecute(结果);
如果(结果等于(“确定”)){
Toast.makeText(MainActivity.this,“ok”,Toast.LENGTH_SHORT.show();
}
否则{
login.setEnabled(true);
login.setClickable(true);
registration.setEnabled(true);
注册。可点击设置(真);
username.setFocusableInTouchMode(true);
password.setFocusableInTouchMode(true);
}
}
@凌驾
受保护的void onProgressUpdate(void…值){
super.onProgressUpdate(值);
}
@凌驾
受保护字符串doInBackground(无效…参数){
字符串结果=null;
Editor=SharedReferences.edit();
试一试{
[....]
字符串u=username.getText().toString();
字符串p=password.getText().toString();
编辑器.putString(用户,u);
编辑器.putString(pass,p);
如果(clic.equals)(“选中
编辑:putBoolean(“isChecked”,isChecked);
系统输出打印项次(“clic”);
}否则{
编辑器.putBoolean(“isChecked”,isunChecked);
System.out.println(“no_clic”);
}
commit();
Intent Intent=新的Intent(getApplicationContext(),HomeActivity.class);
星触觉(意向);
}
捕获(例外e){
System.err.println(e.getMessage());
e、 printStackTrace();
返回结果=e.getMessage();
}
返回结果=“确定”;
}
}
@凌驾
受保护的void onResume(){
SharedReferences=GetSharedReferences(MyPREFERENCES,
上下文。模式(私人);
if(isChecked=SharedReferences.getBoolean(“isChecked”,true)){
Toast.makeText(MainActivity.this,“login”,Toast.LENGTH_SHORT.show();
if(SharedReferences.contains(用户))
{
if(sharedReferences.contains(pass)){
Toast.makeText(MainActivity.this,“login”,Toast.LENGTH_SHORT.show();
System.out.println(“选中复选框”);
试一试{
SharedReferences prefs=GetSharedReferences(“X”,模式\私有);
activityClass=Class.forName(prefs.getString(“activity1”,FirstActivity.Class.getName());
prefs.getString(“activity2”,SecondActivity.class.getName());
}捕获(ClassNotFoundException ex){
}
意向i=新意向(此为activityClass);
星触觉(i);
}
}
}否则{
Toast.makeText(MainActivity.this,“logout”,Toast.LENGTH_SHORT.show();
System.out.println(“注销”);
//注销();
}
super.onResume();
}
公共作废登记(查看){
意图1;
intent1=新的意图(这个,Registration.class);
星触觉(意图)