在TextView上选择文本(android 2.2)

时间:2011-07-08 13:42:10

标签: android android-2.2-froyo

如何在Android 2.2上实现选择文本功能?我搜索了Google,但无法找到解决方案。

5 个答案:

答案 0 :(得分:2)

这是我发现(从谷歌)支持Android 1.6+的唯一方法,它可以工作,但它不理想,我认为在股票android你不能按住webview突出显示直到v2.3 ,但我可能弄错了..

顺便说一下这是一个webview,它也可能适用于textview,但我还没试过呢

(注意:这是我目前运送的应用程序正在使用的内容,因此它适用于我测试过的所有手机,但我找到这个问题的唯一原因是因为我正在搜索并希望有人来到现在为止更好的方式)

我刚刚有一个名为“选择文字”的菜单项,它调用了函数“selectnCopy()”

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    //..
    switch (item.getItemId()) {
        case R.id.menu_select:
            selectnCopy();
            return true;
    //..
    }
}

看起来像这样:

public void selectnCopy() {
    Toast.makeText(WebClass.this,getString(R.string.select_help),Toast.LENGTH_SHORT).show();
    try {
        KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN,
                KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0);
        shiftPressEvent.dispatch(wv);
    } catch (Exception e) {
        throw new AssertionError(e);
    }
}

注意我把select_help字符串放在那里作为祝酒词,这只是因为用户不能立即知道它应该如何工作

<string name="select_help">Touch and drag to copy text.</string>

答案 1 :(得分:1)

您是否将文字设置为可选?像这样:

android:textIsSelectable="false"  //OR true

有关详细信息,请参阅Documentation

答案 2 :(得分:1)

链接@StefanHållén仅提供API级别11之后的工作。

Android 2.2是API Lv.8,这就是你无法获得资源标识符的原因。

答案 3 :(得分:1)

经过漫长而耗时的搜索后,我找不到可以在textview中为android API级别&lt; = 11选择文本的组件。我写过这个可能对你有所帮助的组件: new Selectable TextView in android 3 (API <=11) component

答案 4 :(得分:0)

一个有趣的解决方法:

您可以尝试在网页浏览中显示文字。

您只需将HTML标记及其所有内容写入要显示的字符串中,并且可以使用WebKit浏览器进行选择。

这应该是相当轻量级的,对用户透明,我认为它可以解决您的问题。

如果您需要代码示例,请告诉我,它应该相当简单。只需查看http://developer.android.com/resources/tutorials/views/hello-webview.html

上的WebView文档

祝你好运!