3

我想在用户单击时抓取文本TextView

例如 :

TextView string = "this is a test for android and textView"

当用户点击android位置抓取的文本视图时,android
任何人都有解决方案吗?

4

6 回答 6

1
TextView text = (TextView) findViewById(R.id.yourTextViewId);
text.onClickListner(this);


@Override
public void onClick() {
    String textOnTextView = text.getText().toString();
}
于 2013-09-06T08:45:15.540 回答
1

您可以为 textview 分配一个 onClick 侦听器,使其成为 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();
        }
    });
于 2013-09-06T09:06:22.663 回答
0

如果您想分割线并以不同的颜色显示它们,请参考以下链接。

从字符串中拆分文本

将颜色应用于特定文本

于 2013-09-06T08:45:07.820 回答
0

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

使用setTextIsSelectable(boolean)TextView_textIsSelectableXML 属性使 TextView 可选择(默认情况下文本不可选择)。

使用以下代码,我设法将选定的文本作为字符串。您需要首先通过拖动来选择字符串。
注意:您需要最低API 11才能使用setTextIsSelectable(boolean)

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;
            }
        });
}
于 2013-09-06T10:30:32.173 回答
0

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

于 2013-09-06T09:08:36.293 回答
0

按钮具有 onClick ,我不认为 TextView 具有 onClick 以便用户单击它。

如果我错了,请纠正我

于 2013-09-06T09:02:11.390 回答