Выделить текст для копирования Android EditText - PullRequest
6 голосов
/ 22 декабря 2011

Я хочу выделить некоторый текст внутри EditText, который является дочерним элементом ListView. Выбранный текст должен быть установлен в буфер обмена. Я не могу найти никаких примеров по этому поводу. Как я должен идти об этом? selectionStart и selectionEnd не работают на этом. Спасибо.

Ответы [ 5 ]

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

вот возможное решение. В методе getView listview выполните следующую операцию:

enter code here:

public View getView(final int position, View convertView, ViewGroup parent) {
            // A ViewHolder keeps references to children views to avoid unneccessary calls
            // to findViewById() on each row.
            final ViewHolder holder;


            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.main, null);

                // Creates a ViewHolder and store references to the two children views
                // we want to bind data to.
                holder = new ViewHolder();


                holder.subText = (TextView) convertView.findViewById(R.id.subTxt);      

                convertView.setTag(holder);
            } else {
                // Get the ViewHolder back to get fast access to the TextView
                // and the ImageView.
                holder = (ViewHolder) convertView.getTag();
            }

            //TEXT BOX position is 0 then 
            if(position == 0) {

                ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); clipboard.setText(txtEdit.getText().toString());
            } 
            return convertView;
        }
1 голос
/ 28 декабря 2011

Используйте этот код в событии выбора списка

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); clipboard.setText(txtEdit.getText().toString());

0 голосов
/ 30 декабря 2011
InputConnection ic = getCurrentInputConnection();
ExtractedText extracted = ic.getExtractedText(
                    new ExtractedTextRequest(), 0);
            /*If selection start and end are not equal then selected text 
             * needs to be deleted and updated to core*/
            if (extracted!= null && extracted.selectionStart != extracted.selectionEnd) {
}

Используйте API, заданный ExtractedText

0 голосов
/ 28 декабря 2011

Вы можете открыть одно диалоговое окно для события длинного щелчка editText. InlistView пользовательский адаптер и отобразить два варианта копирования и вставки в них

. Вы можете скопировать текст программно, используя

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

                         clipboard.setText("Text to copy");

и получить текст, используя

System.out.println(clipboard.getText());
0 голосов
/ 26 декабря 2011

EditText уже предоставляет эту функцию при длительном нажатии .... означает нажатие длинного прикосновения к editText, когда появляется контекстное меню с просьбой выбрать все, выбрать текст, скопировать все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...