Champ caché / Tag dans TextView?

Je souhaite passer une valeur qui sera générée au moment de l'exécution, via un TextView. La propriété de texte est utilisée pour certaines autres données et les données que je souhaite passer ne seront pas affichées. Donc, c'est comme une étiquette cachée. Est-il possible de faire avec TextView? Dans l'affirmative, quelle propriété de TextView.

Pour des raisons de simplicité, imaginez que je retire l'ID et le TEXTE de la table de données. Maintenant, le TEXT est affiché sur le TextView, mais quand je souhaite passer la référence à cette ligne particulière de la table à une autre fonction, je souhaite passer l'ID en tant qu'argule / handle. Ainsi, l'ID sera caché et associé à TextView. Comment puis-je le faire? Dans la mesure du possible, pouvez-vous proposer une alternative pour l'accomplir? BTW, le TextView est intégré dans un ListView.

  • Restaurer la pile d'applications Android depuis l'arrière-plan
  • Quelle est l'utilisation de MemoryFile dans Android?
  • Mémoire insuffisante Problème de fuite de la mémoire
  • Crash dans ListView à AbsListView.obtainView pour ListActivity
  • Impossible de construire: le fichier dx.jar n'a pas été chargé à partir du dossier SDK dans mon eclipse
  • Comment utiliser le qualificatif 2 @ Named de Dagger à Kotlin
  • Code de l'adaptateur:

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

  • Comment implémenter RecyclerView avec les lignes CardView dans un Fragment avec TabLayout
  • Comment gérez-vous plusieurs environnements tout en développant des applications Android?
  • Comment insérer le texte "<<" dans TextView?
  • NullPointerException dans Google Play Services lors de l'appel de play () sur RemotePlaybackClient
  • Google Firebase - comment supprimer les rapports Crash?
  • Comment connecter un socket SSL via un proxy HTTP?
  • 3 Solutions collect form web for “Champ caché / Tag dans TextView?”

    Essayez setTag (int, Object) et getTag (int) . Il existe même des versions qui ne prennent pas de clé, si vous voulez simplement stocker une valeur. Du docs:

    Définit la balise associée à cette vue. Une balise peut être utilisée pour marquer une vue dans sa hiérarchie et ne doit pas nécessairement être unique dans la hiérarchie. Les balises peuvent également être utilisées pour stocker des données dans une vue sans recourir à une autre structure de données.

    Vous pouvez donc:

     textView.setTag(myValue); 

    Et récupérez-le plus tard avec:

     myValue = textView.getTag(); 

    Puisque l'interface utilise l' Object , vous devrez ajouter des jetons. Par exemple, si votre valeur est un int :

     textView.setTag(Integer.valueOf(myInt)); 

    et:

     myInt = (Integer) textView.getTag(); 

    Modifier – sous-classe et ajouter la balise, utilisez:

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

    Vous pouvez utiliser setTag() et getTag() .

    Une façon de le faire serait que votre ListAdapter gonfle une disposition au lieu d'une TextView pour chaque élément de la liste. Ensuite, vous pouvez avoir d'autres champs (invisibles) cachés dans la mise en page.

    Le xml pourrait ressembler à ceci:

     <?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> 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.