Dynamic TextView sur ActionBar
J'ai besoin de mettre en œuvre un TextView dans l'ActionBar. Cette TextView montre l'état de la connexion bluetooth de sorte qu'il mettra à jour en fonction de ce statut.
Je ne parle pas de changer ActionBar du titre, mais l'ajout d'un textview f.e. sous le titre ou sur le côté droit.
Pour le moment, ce que j'ai fait est de créer un élément dans la menu.xml:
<item
android:id="@+id/statusTextview"
android:actionViewClass="android.widget.TextView"
android:showAsAction="ifRoom"
android:title="Disconected" />
Puis l'Ajouter sur le mainActivity:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.bluetooth, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(final Menu menu) {
final MenuItem menuItem = menu.findItem(R.id.statusTextview);
tvStatus = (TextView) menuItem.getActionView();
return super.onPrepareOptionsMenu(menu);
}
Mais Il ne fonctionne pas correctement. Au premier abord, le temps devrait montrer Disconnected
statut et ne montrent rien. Puis, quand les changements de statut et les textview doit mettre à jour, il jette un NPE.
source d'informationauteur masmic
Vous devez vous connecter pour publier un commentaire.
Vous pouvez Ajouter TextView manuellement dans
Par le code suivant.
et si vous souhaitez accéder à la vue du texte, puis faire de la télévision en tant que variable de classe.
Juste au cas où quelqu'un doit encore ceci:
Vous pouvez définir dynamiquement la propriété text de l'élément de menu par l'appel de la
setTitle("Your new string or String resource id")
méthode sur l'élément de menu. De cette façon, vous n'avez pas à lancer le ActionView dans un TextView. Par exemple: