Cómo establecer varias etiquetas a un botón?
Tengo 16 botones y los etiqueta para emparejar algunos términos fijados a los botones e importados de la base de datos sqlite. Por lo tanto, los etiqueto de esta manera:
// labelForButton and tagForButton class MyStruct { public MyStruct (String lab, String t){ label = lab; tag = t; } private String label; private String tag; } mDbHelper.open(); Cursor c = mDbHelper.getSpojnice(generateWhereClause()); ArrayList<MyStruct> labelsA = new ArrayList<MyStruct>(); ArrayList<MyStruct> labelsB = new ArrayList<MyStruct>(); labelsA.add(new MyStruct(c.getString(2), "1")); // this tag should be the same to button that matches labelsB.add(new MyStruct(c.getString(3), "1")); labelsA.add(new MyStruct(c.getString(4), "2")); labelsB.add(new MyStruct(c.getString(5), "2")); labelsA.add(new MyStruct(c.getString(6), "3")); labelsB.add(new MyStruct(c.getString(7), "3")); labelsA.add(new MyStruct(c.getString(8), "4")); labelsB.add(new MyStruct(c.getString(9), "4")); labelsA.add(new MyStruct(c.getString(10), "5")); labelsB.add(new MyStruct(c.getString(11), "5")); labelsA.add(new MyStruct(c.getString(12), "6")); labelsB.add(new MyStruct(c.getString(13), "6")); labelsA.add(new MyStruct(c.getString(14), "7")); labelsB.add(new MyStruct(c.getString(15), "7")); labelsA.add(new MyStruct(c.getString(16), "8")); labelsB.add(new MyStruct(c.getString(17), "8")); Collections.shuffle(labelsA); Collections.shuffle(labelsB); a1.setText(labelsA.get(0).label); a1.setTag(labelsA.get(0).tag); a1.setOnClickListener(clickListener); b1.setText(labelsB.get(0).label); b1.setTag(labelsB.get(0).tag); b1.setOnClickListener(clickListener); a2.setText(labelsA.get(1).label); a2.setTag(labelsA.get(1).tag); a2.setOnClickListener(clickListener); b2.setText(labelsB.get(1).label); b2.setTag(labelsB.get(1).tag); b2.setOnClickListener(clickListener); . . . . } }
Por lo tanto, necesito A1 y B1 para tener las mismas etiquetas, también A2 y B2 y así sucesivamente.
- CoordinatorLayout con RecyclerView & CollapsingToolbarLayout
- Problemas al utilizar unirest en Android Studio
- ¿Deberíamos referirnos a los objetos por sus interfaces en la plataforma Android
- No se puede instanciar receptor: class no tiene cero argumento
- Java.lang.IllegalArgumentException: No se puede tener un viewTypeCount <1
PERO, también necesito por alguna otra razón a todos los botones de A tienen la etiqueta por ejemplo "A" y todos los B "B". ¿Así pues, cómo fijar múltiples, en mi caso dos, etiquetas a un botón?
EDITAR:
He añadido esto a mi string.xml:
<item type="id" name="KOLONA1"/> <item type="id" name="KOLONA2"/>
A continuación, agregó etiquetas:
a1.setTag(R.id.KOLONA1, labelsA.get(0).tag); b1.setTag(R.id.KOLONA2, labelsA.get(0).tag);
- ¿Cómo se obtiene el "Nombre de dispositivo" definido por el usuario en android?
- Efectos de transición con Android ImageView
- ¿Qué versión de Apache HTTP Client está incluida en Android 1.6?
- Cómo configurar el encabezado de solicitud para enviar datos desde aplicaciones de Android a nuestro servidor
- Biblioteca de Android xmpp
- Implementar un RecyclerView en un fragmento
- La aplicación para Android no se bloquea, pero no responde con excepciones no detectadas
- Android SDK de repente dejó de funcionar
Si necesita agregar una etiqueta múltiple en una vista, entonces debe definir el ID de cada etiqueta en el archivo strings.xml
como:
<item type="id" name="section" /> <item type="id" name="hide_show" />
Después de agregar la clave puede utilizar estas claves en el archivo java como a continuación:
rowView.setTag(R.id.section,mSectionList.get(position)); rowView.setTag(R.id.hide_show,"close");
Esto establecerá la etiqueta. En el momento de obtener la etiqueta que necesita para tipificar el objeto que originalmente se establece como:
String mSection=(String)rowView.getTag(R.id.section); String isOpen=(String)rowView.getTag(R.id.hide_show);
Debe utilizar el setTag(int key, Object tag)
, que también toma una segunda key
parámetro. Esto le permitirá establecer múltiples tags
en cada Button
como este:
button.setTag(1,object1); button.setTag(2,object2);
tratar :
button.setTag(1,obj1); button.setTag(2,obj2); button.setTag(3,obj3);
Y para obtener las etiquetas, utilice
v.getTag(1); v.getTag(2); v.getTag(3);
Pero, esto devolverá sólo objetos. Usted necesita encasillarlo.
Defina el id de clave en strings.xml
y luego obtenga a través del ejemplo de id:
En String.xml declare el siguiente código
<item type="id" name="date" /> <item type="id" name="name" />
Ahora establece la etiqueta como siguiente
share.setTag(R.id.date,it.adjournDate); share.setTag(R.id.name,it.partyName);
Compartir es el nombre de mi botón
Ahora finalmente obtener la etiqueta en el botón donde desea que estos valores escucha de esta manera:
v.getTag(R.id.name) v.getTag(R.id.date)
- Actividad de inicio de Android al presionar elemento ListView de widget
- Prueba de clases sin actividad en Android