android 获取textview中我们所点击的某个字(句)

来源:互联网 发布:淘宝会员中心 编辑:程序博客网 时间:2024/05/20 04:49

通常我们为textview绑定点击事件只能监听整个textview的点击时间,如我们想获取我们实际点的是哪一个字可通过以下方法实现

(textview可以绑定单击或长按监听器)


textView = (TextView) findViewById(R.id.word);SpannableStringBuilder s = new SpannableStringBuilder(textView.getText());for(int i=0;i<s.length();i++){    s.setSpan(new ClickableSpan() {        @Override        public void onClick(View v) {        }        @Override        public void updateDrawState(TextPaint ds) {            super.updateDrawState(ds);            ds.setColor(0xff000000);       //设置文件颜色            ds.setUnderlineText(false);      //设置下划线        }    },i,i+1, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);}//设置textview中所有文字为spannable格式textView.setText(s,TextView.BufferType.SPANNABLE);//启用上面为每个字绑定的ClickableSpantextView.setMovementMethod(LinkMovementMethod.getInstance());textView.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View v) {        //若没有绑定clickableSpan,无法使用subSequence方法        //若tv.getSelectionStart()-1,则输出点击的文字以及其上一个文字        //若tv.getSelectionEnd()+1,则输出点击的文字以及其下一个文字,如此类推        //通过标点判断还可截取一段文字中我们所点击的那句话        TextView tv = (TextView) v;        String s = tv                .getText()                .subSequence(tv.getSelectionStart(),                        tv.getSelectionEnd()).toString();        Log.d("tapped on:", s);    }});



阅读全文
0 0
原创粉丝点击