Вставить из буфера обмена в Android - PullRequest
5 голосов
/ 23 декабря 2011

Я написал код, который копирует ответ в калькуляторе в буфер обмена, затем калькулятор закрывается и открывается другое окно. Ответ должен быть вставлен здесь, используя код:

    textOut2= (TextView) findViewById(R.id.etInput1);
    final ClipboardManager clipBoard= (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
    textOut2.setText(clipBoard.getText());

но это никогда не работает. Где может быть ошибка? постскриптум Я знаю, какой текст копируется, потому что я могу вставить, используя долгое нажатие, но я хочу сделать это автоматически. И возможно ли дать конкретное имя скопированному тексту? Как было бы легче вставить слова, так как у меня есть много различных TextView

Ответы [ 2 ]

11 голосов
/ 23 декабря 2011

публичный CharSequence getText () С тех пор: API Уровень 11 Этот метод устарел. Используйте взамен getPrimaryClip (). Это извлекает основной клип и пытается привести его к строке.

String textToPaste = null;

ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);

if (clipboard.hasPrimaryClip()) {
    ClipData clip = clipboard.getPrimaryClip();

    // if you need text data only, use:
    if (clip.getDescription().hasMimeType(MIMETYPE_TEXT_PLAIN))
        // WARNING: The item could cantain URI that points to the text data.
        // In this case the getText() returns null and this code fails!
        textToPaste = clip.getItemAt(0).getText().toString();

    // or you may coerce the data to the text representation:
    textToPaste = clip.getItemAt(0).coerceToText(this).toString();
}

if (!TextUtils.isEmpty(textToPaste))
     ((TextView)findViewById(R.id.etInput1)).setText(textToPaste);

Вам разрешено добавлять ClipData.Item элементов с текстом через ClipData.addItem(), но их невозможно различить.

2 голосов
/ 23 декабря 2011

попробуйте

textOut2= (TextView) findViewById(R.id.etInput1);
final ClipboardManager clipBoard= (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
String temp = new String;
temp = clipBoard.getText().toString();
textOut2.setText(temp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...