开发者社区> 问答> 正文

Android 数据存储] android SharedPreferences 问题:报错

下面注释的有问题;实在不知道怎么理解;求给予解答;谢谢

private SharedPreferences autoLoginSp;// 保存用户登录信息
private AutoCompleteTextView userNameView;
private EditText passwordView;


private void savePassword() {// 保存密码方法,数据放入SharedPreferences文件
  autoLoginSp = this.getSharedPreferences("ouatLoginFile", MODE_PRIVATE);
  userNameView.setThreshold(1);// 输入1个字母就开始自动提示
  // 隐藏密码为InputType.TYPE_TEXT_VARIATION_PASSWORD,也就是0x81
  // 显示密码为InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD,也就是0x91
  passwordView.setInputType(InputType.TYPE_CLASS_TEXT
    | InputType.TYPE_TEXT_VARIATION_PASSWORD);
  userNameView.addTextChangedListener(new TextWatcher() {
   @Override
   public void onTextChanged(CharSequence s, int start, int before,
     int count) {            //这句话怎么理解呀;特别里面的参数分别都指的是什么呀
    // TODO Auto-generated method stub
    String[] allUserName = new String[autoLoginSp.getAll().size()];// sp.getAll().size()返回的是有多少个键值对
    allUserName = autoLoginSp.getAll().keySet()
            .toArray(new String[0]);         //这句话怎么理解,还有keySet()指的是什么呀;new String【0】怎么理解呀;不懂;谢谢

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
      LoginActivity.this,
      android.R.layout.simple_dropdown_item_1line,
      allUserName);     //这句话是什么意思;具体怎么理解;谢谢
    userNameView.setAdapter(adapter);// 设置数据适配器
   }
   @Override
   public void beforeTextChanged(CharSequence s, int start, int count,
     int after) {
    // TODO Auto-generated method stub
   }
   @Override
   public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
    // 自动输入密码
    passwordView.setText(autoLoginSp.getString(userNameView
      .getText().toString(), ""));
   }
  });
}

展开
收起
kun坤 2020-06-06 14:25:13 677 0
1 条回答
写回答
取消 提交回答
  • 1, 第一个是TextView的输入的时候监听,类似于观察者

    2,Collection转数组,java知识

    3,构造一个Adapter填充数据

    最后,基础很重要!

    2020-06-06 14:25:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载