zoukankan      html  css  js  c++  java
  • TextView & EditText

    TextView

    1.下划线

    textView.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG ); //下划线

    2.单独做第一步,文字会出现锯齿,要加下面抗锯齿

    textView.getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG|Paint.ANTI_ALIAS_FLAG );

    或者textView.getPaint().setAntiAlias(true);//抗锯齿

    3.中划线

    textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG); 

    4.xml文件中,android:onClick 设置无效

    需要设置属性android:clickable="true"

    5.This tag and its children can be replaced by one <TextView/> and a compound drawable

    当我们用一个LinearLayout来实现一个ImageView和TextView在一起的时候,就会出现上面的提示。

    根据提示来修改,可以使用TextView的drawableLeft等属性,代码如下

    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/ic_launcher"
            android:drawablePadding="4dp" 
            android:gravity="center"
            />

     6.在代码中改drawableLeft

    Drawable drawable= getResources().getDrawable(R.drawable.drawable);
    /// 这一步必须要做,否则不会显示.
    drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
    myTextview.setCompoundDrawables(drawable,null,null,null);
    //也或参考另一个函数
    public void setCompoundDrawablesWithIntrinsicBounds (Drawable left, Drawable top, Drawable right, Drawable bottom)
    //另一个函数
    public void setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom)

     7.行距

    android:lineSpacingExtra="3dp"

     8.省略号

    <!-- start,end,middle,marquee-->
    android:ellipsize="end"
    android:singleLine="true"

     9.HTML

    //注:font的size属性不起作用,如果需要改变大小,使用h1等的标签
    textView.setText(Html.fromHtml("<h1><font color='#FF783F'>text</font></h1>");

     10.获取行数

    textview.post(new Runnable() {
        @Override
        public void run() {
            int lineCount = textview.getLineCount();          
        }
    });    

     11.android:drawablePadding

    tv.setCompoundDrawablePadding(padInPx);

     12.字体

    android:fontFamily="sans-serif-thin"

     

    EditText

    1.android:imeOptions

    该属性用于修改输入法键盘里的Enter的图标或者文字,比如值为“actionSearch”,图标为搜索的图片或者文字"Search"之类的,类似的还有"Send", "Go"等文字

    2.android:inputType

    该属性用于帮助输入法决定使用什么键盘,比如如果值是"textCapCharacters"时,会第一个字母大写。类似的还有"textPassword", "textEmail", "textPhonetic"

    代码输入可以用editText.setInputType(EditorInfo.inputType);

    默认是数字,但是可以输入其他,注意xml中不要设置inputType

    et.setRawInputType(InputType.TYPE_CLASS_NUMBER);

    3.光标显示最右边

    editText.setSelection(text.length());

    4.响应键盘事件

    edittext.setOnKeyListener(new OnKeyListener() {
                
         @Override
         public boolean onKey(View v, int keyCode, KeyEvent event) {
               // TODO Auto-generated method stub
               if(keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){
                 return true;
               }
               return false;
         }
    });

     5.EditText不可编辑(android:editable已经过期)

    <EditText ...
            android:clickable="false" 
            android:cursorVisible="false" 
            android:focusable="false" 
            android:focusableInTouchMode="false">
    </EditText>

     代码设置

    editText.setKeyListener(null);//设了就不能编辑

    6.看官方demo时,发现editText有个很好的方法,setError()。可以弹出错误信息,用法如下

    editText.setError(error);

     7.自动换行

    设置inputType会导致editText不会自动换行

     8.获取焦点并弹出键盘

    et.requestFocus();
    et.setSelection(et.getText().toString().length());
    InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    inputManager.showSoftInput(et, 0);

    //若不会自动弹出键盘,看看AndroidManifest.xml是否有设置android:windowSoftInputMode="stateHidden"

     9.最大字数

    android:maxLength

     10.字符串过滤

    InputFilter

     11.不自动获取焦点(不自动弹出键盘)

    方案1
    EditText的父Layout中,加入下面的两个属性即可 android:focusable="true" android:focusableInTouchMode="true"
    方案2
    android:windowSoftInputMode="stateHidden"

     12.插入内容到EditText光标所在位置

    EditText mEditText = (EditText)findViewById(R.id.input);//EditText对象
    int index = mEditText.getSelectionStart();//获取光标所在位置
    String text="I want to input str";
    Editable edit = mEditText.getEditableText();//获取EditText的文字
    if (index < 0 || index >= edit.length() ){
          edit.append(text);
    }else{
          edit.insert(index,text);//光标所在位置插入文字
     }

     13.响应imeOptions

    editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
                @Override
                public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
                    if(actionId == EditorInfo.IME_ACTION_GO){
                        //TODO
                        return true;
                    }
                    return false;
                }
            });

     14, InputFilter限制EditText内容长度

    editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});  

     15:digits:只能输入指定的字符

    android:digits="abcdefg"
  • 相关阅读:
    使用图形化技术完成电子相册程序的开发
    本周新学的 GUI绘图技术
    不如今日来说 有关StringBufferr类和字符串格式化的内容~
    PHP的身份证号码工具类
    在网页中嵌入带标识的百度地图
    PHP正则表达式使用详解
    Spicy Chicken GDI in C#
    [C++] Running time and Integer to String
    the difference between const int *, int * const, int const *
    [C# WPF]MoeEroViewer Developing Log
  • 原文地址:https://www.cnblogs.com/baron89/p/3740194.html
Copyright © 2011-2022 走看看