zoukankan      html  css  js  c++  java
  • 安卓用户名密码操作及虚拟机问题

    今日所学:

    记住用户名和登录密码

    用adb查看保存文件内容

    如何使用adb 如何安装adb-百度经验

    遇到的问题:

    用adb查看文件时,没有权限访问data文件

    出现原因:google play虚拟机没有root权限

    解决办法:

    用google API的虚拟机

    相关博客:adb shell中提示Permission denied - 简书

    关于/system/bin/sh: su: not found的解决办法(安卓模拟器运行) - 程序员大本营

    成果截图:

    代码:

    MainActivity.java

    复制代码
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Context;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.util.Log;
    import android.widget.CheckBox;
    import android.widget.CompoundButton;
    import android.widget.EditText;
    
    public class MainActivity extends AppCompatActivity {
    
        private EditText mEtPhone;
        private EditText mEtPasswd;
        private CheckBox mPsd;
        private String SP_PHONE="sp_phone";
        private String SP_PASSWD="sp_passwd";
        private SharedPreferences sharedPreferences;
        private String SP_IS_REMEMBER="sp_is_remember";
        private boolean isCheck=false;
        private String TAG="MainActivity";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initUI();
            initData();
        }
    
        private void initData() {
            if(sharedPreferences==null){
                sharedPreferences=getApplicationContext().getSharedPreferences("config", Context.MODE_PRIVATE);
            }
            mEtPhone.setText(sharedPreferences.getString(SP_PHONE,""));
            mEtPasswd.setText(sharedPreferences.getString(SP_PASSWD,""));
            isCheck=sharedPreferences.getBoolean(SP_IS_REMEMBER,false);
            Log.i(TAG,"测试:"+isCheck);
            mPsd.setChecked(isCheck);
        }
    
        private void initUI() {
            mEtPhone=findViewById(R.id.et_phone);
            mEtPhone.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
                }
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
    
                }
    
                @Override
                public void afterTextChanged(Editable s) {
                    if(isCheck){
                        if(sharedPreferences==null){
                            sharedPreferences=getApplicationContext().getSharedPreferences("config", Context.MODE_PRIVATE);
                        }
                        SharedPreferences.Editor edit=sharedPreferences.edit();
                        edit. putString(SP_PHONE,mEtPhone.getText().toString());
                        edit.commit();
                    }
    
                }
            });
            mEtPasswd=findViewById(R.id.et_passwd);
            mEtPasswd.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
                }
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
    
                }
    
                @Override
                public void afterTextChanged(Editable s) {
                    if(isCheck){
                        if(sharedPreferences==null){
                            sharedPreferences=getApplicationContext().getSharedPreferences("config", Context.MODE_PRIVATE);
                        }
                        SharedPreferences.Editor edit=sharedPreferences.edit();
                        edit.putString(SP_PASSWD,mEtPasswd.getText().toString());
                        edit.commit();
                    }
    
                }
            });
            mPsd=findViewById(R.id.cb_remember_psd);
            mPsd.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                    Log.d(TAG,"状态为:"+isChecked);
                    isCheck=isChecked;
    
                    if(sharedPreferences==null){
                        sharedPreferences=getApplicationContext().getSharedPreferences("config", Context.MODE_PRIVATE);
                    }
                    SharedPreferences.Editor edit=sharedPreferences.edit();
                    if(isChecked){
                        edit. putString(SP_PHONE,mEtPhone.getText().toString());
                        edit.putString(SP_PASSWD,mEtPasswd.getText().toString());
                    }
                    edit.putBoolean(SP_IS_REMEMBER,isChecked);
                    edit.commit();
                }
            });
    
        }
    }
    复制代码

    activity_main.xml

    复制代码
      
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <EditText
            android:id="@+id/et_phone"
            android:inputType="phone"
            android:hint="电话"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <EditText
            android:id="@+id/et_passwd"
            android:inputType="textPassword"
            android:hint="密码"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <CheckBox
            android:id="@+id/cb_remember_psd"
            android:text="记住密码"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <Button
            android:text="登录"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    
    </LinearLayout>
    复制代码
  • 相关阅读:
    PEP8 Python 编码规范整理
    github操作
    重零开始,写一个股票交易项目(1)
    矢量地图质量检查现状与需求(2篇)
    导航数据质量评价相关
    测绘数据国内外现状概述
    机器的反叛-机器的智能会超越人类吗?
    标签要素调用CSS样式优先级说明
    内存碎片概念及主要避免方式
    关于年终述职总结
  • 原文地址:https://www.cnblogs.com/jz-no-bug/p/14907655.html
Copyright © 2011-2022 走看看