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;
}
});
}