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.

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); 

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) 
  • No se encontró com.android.support:support-v13:19.0.0
  • Java (Android) reordenando una lista de objetos
  • AsyncTask.executeOnExecutor () antes de API Nivel 11
  • Módulos gradol de Android con el mismo nombre
  • Android: no parece poder usar MotionEvent.ACTION_MOVE correctamente
  • Try catch exception devuelve siempre null
  • Cómo obtener datos de cordova-plugin-nativestorage en android java
  • El anuncio de Admob no cambia de tamaño correctamente en la orientación de la pantalla
  • Conversión entre mensaje y cadena en android?
  • IInAppBillingService.java no genera archivos Java en Android Studio
  • Crear archivo de tipo android de Uri
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.