Android 选择文本的一部分查看文本

Android 选择文本的一部分查看文本,android,textview,Android,Textview,我想在用户单击TextView 例如: TextView string = "this is a test for android and textView" 当用户在androidposition中单击textview时,抓取android 有人对此有解决方案吗?如果要分割线并以不同颜色显示,请参阅以下链接 一个按钮有onClick,我认为TextView没有onClick,所以用户不会点击它 如果我错了,请更正您可以将onClick侦听器分配给textview,使其成为final,然后获

我想在用户单击
TextView

例如:

TextView string = "this is a test for android and textView"
当用户在
android
position中单击textview时,抓取
android


有人对此有解决方案吗?

如果要分割线并以不同颜色显示,请参阅以下链接


一个按钮有onClick,我认为TextView没有onClick,所以用户不会点击它


如果我错了,请更正

您可以将onClick侦听器分配给textview,使其成为final,然后获取其文本

    final TextView txt = (TextView) findViewById(R.id.txt);

    txt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            String getTxt = txt.getText().toString();
        }
    });

如果要选择部分文本,请尝试使用
EditText

这不是满足您需要的解决方案。但这只是解决问题的一步

使用
setTextIsSelectable(boolean)
TextView\u textselectable
XML属性使TextView可选择(默认情况下,文本不可选择)

使用以下代码,我成功地将所选文本作为字符串。您需要首先通过拖动选择字符串。
注意:要使用
settextisselection(布尔值)


您是通过代码还是在XML中创建TextView?你能给我们提供更多的代码吗?蹩脚的英语解释你的问题我的目的是当用户点击文本视图(文本视图包括长字符串)抓取点击的文本。。。有点像OCR,但在这里我看到的是文本视图而不是图像。所有视图都有一个ClickListener:。所以,是的,TextView确实得到了onClickall视图得到了onClickListener正如Plumillon所说,检查我的答案。他不想要所有的文本。只是用户触摸的文本的一部分。
    final TextView txt = (TextView) findViewById(R.id.txt);

    txt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            String getTxt = txt.getText().toString();
        }
    });
TextView t1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    t1=(TextView) findViewById(R.id.textView1);
t1.setTextIsSelectable(true);// IMPORTANT
        t1.setText("This is Android program");
        t1.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch(event.getAction()){
                case MotionEvent.ACTION_UP:
                    int start=t1.getSelectionStart();
                    int end=t1.getSelectionEnd();
                    String sub=t1.getText().subSequence(start, end).toString();
                    Toast.makeText(getBaseContext(), sub, 1).show();
                }
                return true;
            }
        });
}