选择TextView文本的一部分

时间:2013-09-06 08:37:20

标签: android textview

我想在用户点击TextView

时抓取文字

例如:

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

当用户点击android位置抓取android时的textview时 有人有解决方案吗?

6 个答案:

答案 0 :(得分:1)

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


@Override
public void onClick() {
    String textOnTextView = text.getText().toString();
}

答案 1 :(得分:1)

您可以将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();
        }
    });

答案 2 :(得分:0)

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

Split text from string

Apply color to specific text

答案 3 :(得分:0)

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

如果我错了,请纠正我

答案 4 :(得分:0)

如果您想选择部分文字,请尝试使用EditText

答案 5 :(得分:0)

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

使用setTextIsSelectable(boolean)TextView_textIsSelectable XML属性使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;
            }
        });
}