在这种情况下,“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没有显示任何内容。
感谢。
答案 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;