android - studio - textview html
Campo oculto/etiqueta en TextView? (3)
Pruebe setTag (int, Object) y getTag (int) . Incluso hay versiones que no aceptan una clave, si solo desea almacenar un valor. De los documentos:
Establece la etiqueta asociada con esta vista. Una etiqueta se puede usar para marcar una vista en su jerarquía y no tiene que ser única dentro de la jerarquía. Las etiquetas también se pueden usar para almacenar datos dentro de una vista sin recurrir a otra estructura de datos.
Entonces puedes hacer:
textView.setTag(myValue);
y recuperarlo más tarde con:
myValue = textView.getTag();
Como la interfaz usa Object
, deberás agregar moldes. Por ejemplo, si su valor es un int
:
textView.setTag(Integer.valueOf(myInt));
y:
myInt = (Integer) textView.getTag();
Editar - para subclase y agregar la etiqueta, use:
adapter = new SimpleCursorAdapter(this, R.layout.item_row,
cursor, new String[] {"Emp_Name"}, new int[] R.id.txtEmployee}) {
@Override
public View getView (int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.setTag(someValue);
return view;
}
};
Quiero pasar un valor que se generará en tiempo de ejecución, a través de un TextView. la propiedad de texto se usa para algunos otros datos y los datos que quiero pasar no se mostrarán. Entonces, es como una etiqueta oculta. ¿Es posible hacer con TextView? De ser así, qué propiedad de TextView.
En aras de la simplicidad, imagine que extraigo la ID y el TEXTO de la tabla de datos. Ahora el TEXTO se muestra en el TextView pero cuando quiero pasar la referencia a esa fila particular de la tabla a alguna otra función, quiero pasar el ID como argumento / manejar. Por lo tanto, la ID se ocultará y se asociará con TextView. ¿Cómo puedo hacerlo? Si no es posible, ¿puede sugerir alguna alternativa para lograr esto? Por cierto, el TextView está incrustado dentro de un ListView.
Código de adaptador:
cursor = db.rawQuery("SELECT * FROM EmpTable", null);
adapter = new SimpleCursorAdapter(
this,
R.layout.item_row,
cursor,
new String[] {"Emp_Name"},
new int[] {R.id.txtEmployee});
Puede usar setTag()
y getTag()
.
Una forma de hacerlo sería hacer que su ListAdapter infle un diseño en lugar de un TextView para cada elemento de la lista. Luego puede tener otros campos (invisibles) ocultos en el diseño.
El xml podría verse así:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/visible_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Visible text"/>
<TextView android:id="@+id/hidden_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hidden value"
android:visibility="gone"/>
</LinearLayout>