Cursor no es visible en EditText cuando se agrega dinámicamente la vista

Tengo un TableLayout y la visión dinámica se agrega en la disposición. Siempre que la disposición tenga un cursor de EditText no es visible en EditText pero el cursor es visible encima del EditText que es TextView .

He añadido onClick evento, archivo XML para Edittext y Textview y archivo XML para el diseño principal.

Mi oyente de texto:

 textView.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { textView.setSelection(textView.getText().toString().length()); textView.requestFocus(); textView.requestFocusFromTouch(); textView.setCursorVisible(true); return false; } }); 

Archivo XML:

  <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:scrollbars="vertical" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_margin="10dp" android:focusable="true" android:focusableInTouchMode="false" android:text="@string/title_form_details" android:textSize="25dp" /> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fieldsContainer" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="vertical" android:shrinkColumns="1" android:stretchColumns="1" > </TableLayout> </LinearLayout> </ScrollView> 

TextView XML de TextView :

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/label" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical|left" android:paddingBottom="0dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="5dp" /> 

EditText XML de EditText :

 <?xml version="1.0" encoding="utf-8"?> <EditText xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/control" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cursorVisible="true" android:textColor="#000000" android:textCursorDrawable="@null" /> 

De forma dinámica estoy añadiendo TextView y en la fila siguiente estoy añadiendo Edittext vista, pero siempre que EditText clic en EditText , el cursor es visible en TextView .

6 Solutions collect form web for “Cursor no es visible en EditText cuando se agrega dinámicamente la vista”

Esta solución funcionó para mí.

 textView.setText("text"); textView.post(new Runnable() { @Override public void run() { textView.setSelection(textView.getText().toString().length()); } }); 

Está estableciendo la visibilidad del cursor en textview , por lo que es visible en TextView

Eliminar esta línea de su código

 textView.setCursorVisible(true); 

 textView.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { textView.setSelection(textView.getText().toString().length()); textView.requestFocus(); textView.requestFocusFromTouch(); //textView.setCursorVisible(true); return false; } }); 

Y tratar de establecer la visibilidad a edittext

  edittext .setCursorVisible(true); 

Intente agregar un <requestFocus /> en su edittext. Tal vez funciona.

Intenta llamar a setTextIsSelectable dentro de onTouchListener

  editText.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { editText.setTextIsSelectable(true); return false; } }); 

Eliminar esta línea:

 textView.setCursorVisible(true); 

Entonces funciona.

Este error es uno de los más ridículos en Android, supongo …

Aquí es cómo lo manejé:

  public void addEditText(LinearLayout linearLayout, final View view) { final EditText editText = new EditText(getActivity()); linearLayout.addView(textView); linearLayout.addView(editText); Utils.runDelayed(new Callable() { @Override public Object call() throws Exception { if (editText.getText() == null || editText.getText().toString().isEmpty()) { editText.setText(""); editText.setSelection(editText.getText().toString().length()); editText.setCursorVisible(true); editText.setTextIsSelectable(true); editText.setInputType(InputType.TYPE_CLASS_TEXT); } return null; } }, 10); editText.setTextAppearance(R.style.LargeEditText); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { } }); } 

El ayudante:

 /** * Run delayed. * * @param callable the callable * @param delay the delay */ public static void runDelayed(final Callable callable, long delay) { final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { try { callable.call(); } catch (Exception e) { e.printStackTrace(); } } }, delay); } 
  • Diseño de tabla XML? ¿Dos filas de la misma anchura con botones de igual anchura?
  • Cómo crear una paginación para el diseño de tabla dinámicamente creado con el conjunto visible?
  • Línea de encabezado de TableLayout de Android
  • Alineación de la disposición de la tabla de Android
  • ¿Cuál es el equivalente de "colspan" en un Android TableLayout?
  • Disposición de respuesta de Android
  • ¿Es posible especificar la altura de TableRow?
  • Rellene TableLayout con android: layout_weight de forma programática
  • Edición de la anchura de TableLayout de Android
  • GridView o TableLayout?
  • Las filas añadidas dinámicamente en tablelayout no son visibles
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.