Android getselectionStart和Getselectionend文本不起作用

时间:2013-10-24 23:16:35

标签: android textview getselection

谁能解释一下,我做错了什么?

在这种情况下,“tt”是我的TexView。 在我的Oncreate()方法上,我有:

tt = (TextView) findViewById(R.id.ni);
tt.setText("This is a try");

然后

tt.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                String vi = tt.getText().toString().substring(tt.getSelectionStart(),tt.getSelectionEnd());
                Toast.makeText(getApplicationContext(), vi,Toast.LENGTH_LONG).show();

                }

        });

Onclick没有显示任何内容。

感谢。

1 个答案:

答案 0 :(得分:0)

几天前,我遇到了同样的问题,最终我可以找到以下解决方案。将过程延迟甚至10毫秒可能会很有帮助。无论您要获取所选文本的何处,都将其放在onClick / onLongClick方法中。

原始答案:textView.getSelectionEnd() returning start index value on Samsung Marshmallow 6.0 devices

我希望这对将来有类似问题的人有所帮助。

new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {

                int startIndex = textView.getSelectionStart();
                int endIndex = textView.getSelectionEnd();

                if ((endIndex - startIndex) <= 0) {
                    return;
                }

                // UI related code here
            }
        }, TIME_IN_MS_TO_DELAY);
        return false;