android edittext操作

1.获取光标选中的文字


EditText view = (EditText)findViewById(R.id.edt);

int start = view.getSelectionStart();

int end = view.getSelectionEnd();     

  //由于选择的位置和你开始选择文字的顺序有关,所以最好重新判断整理一下顺序,免得出错

                if (start>end) {
                    start = start + end ;
                    end = start - end;
                    start = start - end;
                }


String sub = view .getText() .toString().substring(start, end);


2.设置光标在输入框的位置

在编写应用的时候,如果我们要将光标定位到某个位置,可以采用下面的方法:

 CharSequence text = editText.getText();
 //Debug.asserts(text instanceof Spannable);
 if (text instanceof Spannable) {
     Spannable spanText = (Spannable)text;
     Selection.setSelection(spanText, text.length());
 }

其中红色标记的代码为你想要设置的位置,此处是设置到文本末尾。



3 在指定位置插入字符串

public class EditTextCopyActivity extends Activity  {
    /** Called when the activity is first created. */
    private EditText et1 ,et2,et3,et4,et5,et6,et7;
    private Button bt1,bt2,bt3;
    private  ClipboardManager clip ;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initViews();
       
        bt1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                
                 View  view   =  getCurrentFocus();
                    if (view instanceof EditText) {
                        EditText et = (EditText)view;
                        int start = et.getSelectionStart();
                        int end = et.getSelectionEnd();
                        if (start>end) {
                            start = start + end ;
                            end = start - end;
                            start = start - end;
                        }
                        String sub = et.getText().toString().substring(start, end);
                        clip.setText(sub);
                    }
            }
        });
        
        bt2.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                 View  view   =  getCurrentFocus();
                    if (view instanceof EditText) {
                        EditText et = (EditText)view;
                        int  start = et.getSelectionStart();
                        System.out.println(start+"--------------");
                        String s = clip.getText().toString();
                        et.getText().insert(start,s);
                    }
            }
        });

        bt3.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                 View  view   =  getCurrentFocus();
                    if (view instanceof EditText) {
                        EditText et = (EditText)view;
                        int start = et.getSelectionStart();
                        int end = et.getSelectionEnd();
                        if (start>end) {
                            start = start + end ;
                            end = start - end;
                            start = start - end;
                        }
                        String sub = et.getText().toString().substring(start, end);
                        et.getText().delete(start, end);
                        clip.setText(sub);
                    }
            }
                
            
        });
        
    }
    private void initViews(){
        et1 = (EditText)this.findViewById(R.id.editText1);
        et2  =(EditText)this.findViewById(R.id.editText2);
        et3 =(EditText)this.findViewById(R.id.editText3);
        et4  =(EditText)this.findViewById(R.id.editText4);
        et5  =(EditText)this.findViewById(R.id.editText5);
        et6  =(EditText)this.findViewById(R.id.editText6);
        clip = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
        bt1=(Button)this.findViewById(R.id.button1);
        bt2 = (Button)this.findViewById(R.id.button2);
        bt3 = (Button)this.findViewById(R.id.button3);
    }

 
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值