zoukankan      html  css  js  c++  java
  • Android学习笔记5

    SharedPreferenced的使用方法:SharedPreferences 是一个轻量级的存储类,主要是保存一些小的数据,一些状态信息

         第一步:初始化
             * 获取SharedPreferenced对象

            * 第一个参数是生成xml的文件名,第二个参数是存储的格式,SharedPreferences preferences = getSharedPreferences("OpenCount", Context.MODE_PRIVATE);

       第二步:获取edit对象

         //获取到edit对象,SharedPreferences.Editor edit = preferences.edit();

       第三步:通过edit对象写入数据,第一个参数是属性名,第二个参数是所要传的值 

                 通过editor对象写入数据,edit.putInt("count",1);

      第四步:将数据保存到xml文件里,提交数据存入到xml文件中,edit.commit();

    第五步:通过get方法读取所存的信息

    int count = preferences.getInt("count", 0);
    SharedPreferences这个方法可以将数据存入到本地文件,用来存储登录次数,和登录信息等各种信息

      SetFilters对输入框格式,字符数的控制:

       (1) et_vcode.setFilters(new InputFilter[ ]);参数是一个InputFilter类型的数组

         (2)如果直接添加限制字数的规则,直接newLengthFilter就可以了,例如限制输入最大不超过16位:et_vcode.setFilters(new InputFilter[ ]{new InputFilter.LengthFilter(16)});

          (3)如果此时你还有另一个规则,例如只能输入a-z的小写字母,直接在InputFilter数组中添加  : et_vcode.setFilters(newInputFilter[{ codeInputFilter  ,  newInputFilter .  LengthFilter(16)});

        (4) codeInputFilter继承InputFilter,规则自己定义,重写里面的public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {}

      filter参数介绍:

      source   :变化的字符串

      start    :变化字符的首字符下标

      end      :变化字符的尾字符下

      dest     :带光标的字符串

      dstart   :光标的起始位置 

      dend     :光标的结束位置

      filter方法返回的是一个CharSequence,用来控制可编辑控件添加字符时的约束条件。

    主要分为三种情况:返回null,表示可正常添加source字符串;返回"",表示不变动原字符;返回以上之外的字符串,表示将返回的该字符串追加到远字符串中。

    edit_register.setFilters(new InputFilter[] //设置输入格式
    {
    new InputFilter()
    {
    @Override
    public CharSequence filter(CharSequence source, int start, int end,Spanned dest, int dstart, int dend)
    {
    for (int i = start; i < end; i++)
    {
    if (!Character.isLetterOrDigit(source.charAt(i)) &&
    !Character.toString(source.charAt(i)).equals("_"))
    {
    Toast.makeText(Register_Activity.this, "只能使用'_'、字母、数字、汉字注册!", Toast.LENGTH_SHORT).show();
    return "";
    }
    }
    return null;
    }
    }
    })

    方法:onEditorAction(TextView textView,int actionId,KeyEvent keyEvent)的用法:
    * 第一个参数:TextView textView 表示当前触发事件的EditText的对象,类似于textView=findViewById(R.id.edit_account)
    * 第二个参数:int actionId 表示 按下“完成按钮”,这里和xml文件中EditText属性imeOptions对应
          actionId的取值:
    imeOptions=”actionUnspecified” –> EditorInfo.IME_ACTION_UNSPECIFIED
    imeOptions=”actionNone” –> EditorInfo.IME_ACTION_NONE
    imeOptions=”actionGo” –> EditorInfo.IME_ACTION_GO
    imeOptions=”actionSearch” –> EditorInfo.IME_ACTION_SEARCH
    imeOptions=”actionSend” –> EditorInfo.IME_ACTION_SEND
    imeOptions=”actionNext” –> EditorInfo.IME_ACTION_NEXT
    imeOptions=”actionDone” –> EditorInfo.IME_ACTION_DONE (如果编辑信息输入完成 )

    * 但要注意actionId是指软盘上的,而键盘上的actionId与软盘上的不一样;即在软盘上“完成按钮”的actionId为0,
    * 而键盘上的“完成按钮(回车键)”的actionId为6
    * 第三个参数:KeyEvent keyEvent 表示 按下“完成按钮”,这里和xml文件中EditText属性imeOptions对应,但keyEvent里面的内容更丰富,内容如下:
    * keyEvent.toString()=KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_ENTER,
    * scanCode=28, metaState=0, flags=0x8, repeatCount=0, eventTime=5664212, downTime=5664212, deviceId=1, source=0x301 }
    * 返回值:返回true,保留软键盘;false,隐藏软键盘
    InputMethodManager imm =(InputMethodManager) getSystemService(Login_Activity.this.INPUT_METHOD_SERVICE);   //调用系统服务(包括显示键盘,隐藏键盘)
     imm.hideSoftInputFromWindow(edit_password.getWindowToken(), 0);     //隐藏键盘
  • 相关阅读:
    浅尝EffectiveCSharp_6
    浅尝EffectiveCSharp_7
    浅尝EffectiveCSharp_9
    CLR_via_C#.3rd 翻译[1.6 框架类库]
    浅尝EffectiveC#_11
    CLR_via_C#.3rd 翻译[1.9 与非托管代码的操作]
    wcf学习笔记_2(修改wcf配置文件)
    CLR_via_C#.3rd 翻译[1.4.2 不安全代码]
    CLR_via_C#.3rd 翻译[1.4.1 IL与验证]
    CLR_via_C#.3rd 翻译[1.8 通用语言规范]
  • 原文地址:https://www.cnblogs.com/lx06/p/14907926.html
Copyright © 2011-2022 走看看