2011-12-22 56 views
6

Quiero seleccionar un texto dentro de un EditText que es el elemento secundario de un ListView. El texto seleccionado debe establecerse en un portapapeles. No puedo encontrar ningún ejemplo con respecto a esto. ¿Cómo debo ir sobre esto? selectionStart y selectionEnd no funcionan en esto. Gracias.Seleccionar texto para copiar Android EditText

+0

lo siento, no tienen mucho tiempo para escribir requerido para su problema, a pocos minutos de SO búsqueda me dio esta enlace, esto puede ayudarte. Si ya probaste esto, lo siento.http: //stackoverflow.com/questions/2679948/focusable-edittext-inside-listview – kosa

+1

He dicho explícitamente en el comentario que no tengo tiempo. No seas demasiado dictador. Aquí el problema es suyo y la comunidad está tratando de ayudarlo. No piense que la comunidad escribirá todo por usted. Si el enlace no es útil, puede ignorarlo. Cada una de tus respuestas dictamina y eso no es bueno. – kosa

+0

Oye, no estoy dictando nada. Estoy tratando de evitar que la comunidad responda basura. ¡No me malinterpretes! –

Respuesta

0

EditText ya proporciona estas funciones en la pulsación larga .... significa presionar un toque largo en editText aparece con el menú contextual que solicita seleccionar todo, seleccionar texto, copiar todo.

+0

Por favor, intente hacer eso en una vista de lista y luego podemos discutirlo más adelante. –

+0

lo siento, fue mi error que no vi lo mismo en ListView. Ahora también me pregunto cómo hacer eso. – Kri

1

Usar este código en caso de lista de selección

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

+0

puedes probar esto, no funcionará. He intentado todo lo posible por ahí. Pero parece que no funciona. Hay un problema con el enfoque de lista en Android. Siempre confunde elementos secundarios y elementos principales. –

0

Puede abrir un cuadro de diálogo en EDITTEXT clic largo evento adaptador personalizado inlistView y visualizar dos copias opción y pegar en ellos

puede copiar texto programically usando

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

         clipboard.setText("Text to copy"); 

y obtener texto usando

System.out.println(clipboard.getText()); 
+0

¿No entiendes el problema? Listview tiene problemas con elementos secundarios. –

2

aquí está la posible solución. en el método de vista de lista getView ejecutar un trabajo siguiente operación:

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; 
     } 
+0

esto no funcionará ... el editText no se enfocará en esto. –

0
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) { 
} 

uso API dada por ExtractedText