一些常用控件属性&其他

来源:互联网 发布:centos 7 一键lamp 编辑:程序博客网 时间:2024/04/26 21:33

布局:覆盖子类控件直接获得焦点

android:descendantFocusability="blocksDescendants"

EditText

EditText:输入类型,输入字数限制,最大行数,省略号的显示位置

<EditText    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:inputType="phone"    android:maxLength="50"    android:maxLines="2"    android:ellipsize="end"/>

设置输入类型为密码时发现可以输入中文,这当然不行!!

使用digits!更为精准的限制输入类型的方法!

android:inputType="textPassword"android:maxLength="16"android:digits="@string/input_pwd_format"android:id="@+id/et_pwd"android:hint="@string/password_login"

我设置为只能输入数字和字母,string里面的内容就是你的输入框允许出现的字符

<string name="input_pwd_format">0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</string>

有时使用et输入文字发现光标在最前方,代码设置:

etData.setText(message);etData.setSelection(message.length());// 使光标置于文末


取消et焦点,在其父控件设置

android:focusable="true"android:focusableInTouchMode="true"

et第一个显示光标,第二个设置光标颜色,@null为输入的字体颜色

android:cursorVisible="true"android:textCursorDrawable="@null"


et设置只能输入整数(小数为decimal)

android:numeric="integer"

et设置多行显示

android:inputType="textMultiLine" //可以显示多行android:gravity="left|top" //光标在左上方android:minLines="6" //最少显示6行

et代码设置字数限制

etData.setHint("最多输入100个字");etData.setFilters(new InputFilter[]{new InputFilter.LengthFilter(100)});

et禁止输入

android:focusable="false"

设置显示电话号码中间四位为*

String tel="12345678901";phone = tel.substring(0, 3) + "****" + tel.substring(7, tel.length());


addTextChangedListener方法添加输入内容的变化的事件监听


TextView

给textview加横线

tvPrice.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);// 中间加横线tvPrice.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG );// 下划线


加载html

content.setText(Html.fromHtml((String)jsonObject.get("content")));


跑马灯效果,要取得焦点才会滚动起来

android:focusable="true"android:focusableInTouchMode="true"android:ellipsize="marquee"android:singleLine="true"


取消listview  item的点击效果

android:listSelector="@color/transparent"


Json对象中是否存在某个key

jsonObject.has("String name");

自动弹出软键盘

// edittext获得焦点etData.setFocusable(true);etData.setFocusableInTouchMode(true);etData.requestFocus();// 界面跳转可能因为未加载完全而导致键盘不能弹出,此时设置延迟保证键盘的顺利弹出Timer timer = new Timer();timer.schedule(new TimerTask() {                   public void run() {                       // 调用输入管理器弹出软键盘                       InputMethodManager inputManager =                               (InputMethodManager) etData.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);                       inputManager.showSoftInput(etData, 0);                   }               },        998);


CheckBox

自定义样式,button属性要改成null

<CheckBox    android:id="@+id/check"    android:layout_width="30dp"    android:layout_height="30dp"    android:background="@drawable/checkbox_selector"    android:button="@null" />

选中时et输入,spinner不能点击,不选时et禁止输入,spinner可点击

cbOther.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {    @Override    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {        if (isChecked){            llType.setClickable(false);            llType.setBackgroundColor(Color.GRAY);            tvType.setText("选择车型");            etType.setFocusable(true);            etType.setFocusableInTouchMode(true);            etType.setEnabled(true);        }else {            llType.setClickable(true);            etType.setEnabled(false);            etType.setFocusable(false);            etType.setFocusableInTouchMode(false);            llType.setBackgroundColor(Color.WHITE);        }    }});


获取返回数据类型的方法

先取得该数据所在的类,再获得类名

LogOut(jsonObj.get("skill_type").getClass().getName(),"==========skill_type===========");LogOut(jsonObj.get("car_type_str").getClass().getName(),"==========car_type_str===========");
I/============skill_type=============: ==java.util.ArrayList==
I/============car_type_str=============: ==java.lang.String==


从assets 文件夹中获取文件并读取数据

getFromAssets("addr.txt")        public String getFromAssets(String fileName) {    String result = "";    try {        InputStream in = getResources().getAssets().open(fileName);        //获取文件的字节数        int lenght = in.available();        //创建byte数组        byte[] buffer = new byte[lenght];        //将文件中的数据读到byte数组中        in.read(buffer);        result = new String(buffer, "GBK");    } catch (Exception e) {        e.printStackTrace();    }    return result;}

每天补充一点点..


0 0
原创粉丝点击