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.
- División de una cadena delimitada por periodos en varias cadenas
- SlidingDrawer semi abierto al inicio
- Cómo cancelar una solicitud http
- Android editar contacto
- Ionic - 'platform add android' El comando falló con el código de salida ENOENT
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);
- Eclipse muestra errores pero no puedo encontrarlos
- Método eficaz para convertir un archivo de imagen de RGB a YUV
- OutOfMemoryError: Al recibir una respuesta XML de 2.3 MB
- Android: ¿Cómo obtener el color de fondo de Actividad en Java?
- PCM de Android a Ulaw que codifica el archivo wav
- El botón no funciona para AlexKolpa / fab-toolbar
- ¿Es este método más rápido que Math.random ()?
- RSA y AES Descifrar y cifrar el problema
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