zoukankan      html  css  js  c++  java
  • 一手遮天 Android

    项目地址 https://github.com/webabcd/AndroidDemo
    作者 webabcd

    一手遮天 Android - view(文本类): EditText 选中和光标

    示例如下:

    /view/text/EditTextDemo2.java

    /**
     * EditText - 文本编辑控件(继承自 TextView)
     *
     * 演示 EditText 的选中和光标相关的知识点(获取焦点后自动选中全部内容,选中指定位置的内容,获取选中内容或光标的位置,设置光标的位置,隐藏光标,指定光标样式)
     */
    
    package com.webabcd.androiddemo.view.text;
    
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    import com.webabcd.androiddemo.R;
    
    public class EditTextDemo2 extends AppCompatActivity {
    
        private EditText _editText1;
        private EditText _editText2;
        private EditText _editText3;
        private EditText _editText4;
        private Button _button1;
        private Button _button2;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_view_text_edittextdemo2);
    
            _editText1 = (EditText) findViewById(R.id.editText1);
            _editText2 = (EditText) findViewById(R.id.editText2);
            _editText3 = (EditText) findViewById(R.id.editText3);
            _editText4 = (EditText) findViewById(R.id.editText4);
            _button1 = (Button) findViewById(R.id.button1);
            _button2 = (Button) findViewById(R.id.button2);
    
            sample();
        }
    
        private void sample() {
            _editText1.setText("我是 EditText,我继承自 TextView");
            _editText2.setText("我是 EditText,我继承自 TextView");
            _editText3.setText("我是 EditText,我继承自 TextView");
            _editText4.setText("我是 EditText,我继承自 TextView");
    
            // 获取到焦点后自动选中全部内容
            _editText1.setSelectAllOnFocus(true);
    
            // 获取焦点
            _editText2.requestFocus();
            // 失去焦点
            // _editText2.clearFocus();
            // 选中指定位置的文本
            _editText2.setSelection(3,11);
    
            // 获取光标的位置
            _button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 选中文本的起始位置(如果没有选中文本,则为当前光标所在位置)
                    int selectionStart = _editText2.getSelectionStart();
                    // 选中文本的结束位置(如果没有选中文本,则为当前光标所在位置)
                    int selectionEnd = _editText2.getSelectionEnd();
                    Toast.makeText(EditTextDemo2.this, String.format("selectionStart:%d, selectionEnd:%d", selectionStart, selectionEnd), Toast.LENGTH_SHORT).show();
                }
            });
    
            // 设置光标的位置
            _button2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // 将光标定位到文本的末尾
                    _editText2.setSelection(_editText2.getText().length());
                }
            });
    
            // 隐藏光标
            _editText3.setCursorVisible(false);
        }
    }
    
    

    /layout/activity_view_text_edittextdemo2.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <EditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"  />
    
        <EditText
            android:id="@+id/editText2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp" />
        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="获取光标的位置"/>
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="设置光标的位置"/>
    
        <EditText
            android:id="@+id/editText3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp" />
    
        <!--
            textCursorDrawable - 指定光标的样式
        -->
        <EditText
            android:id="@+id/editText4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:textCursorDrawable="@drawable/shape_edittext_cursor"/>
    
    </LinearLayout>
    

    项目地址 https://github.com/webabcd/AndroidDemo
    作者 webabcd

  • 相关阅读:
    3、Ubantu下安装nginx
    2、关于mongodb外部访问不成功的问题
    1. libcurl.so.4: cannot open shared object file: No such file or directory
    Php 笔记
    Jade之Plain Text
    Jade之Mixins
    Jade之Interpolation
    Jade之Template Inheritance
    Jade之Includes
    Jade之Filters
  • 原文地址:https://www.cnblogs.com/webabcd/p/android_view_text_EditTextDemo2.html
Copyright © 2011-2022 走看看