Android: Activer / Désactiver un bouton lors de l'Exécution?
Ok, donc j'ai deux boutons. La première est de "Charger le Texte" et la deuxième est de "Parler".
Maintenant, je ne veux pas le bouton Parler pour être active lorsque aucun texte n'est chargé.
J'ai réussi à mettre en valeur dans l'EditText en Charge le Texte du bouton onClickListener méthode. À l'intérieur de la même méthode que j'ai appelé,
btnSpeak.setEnabled(true);
J'ai initialisé ce que,
btnSpeak = (Button) findViewById(R.id.button1);
L'ensemble de codage est,
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result = tts.setLanguage(Locale.US);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
} else {
btnSpeak.setEnabled(true);
//for checking
if(btnSpeak.isEnabled())
{
Toast.makeText(SimpleAndroidOCRActivity.this, "Button should work!", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(SimpleAndroidOCRActivity.this, "Button should not work!", Toast.LENGTH_SHORT).show();
}
}
} else {
Log.e("TTS", "Initilization Failed!");
}
}
C'est à vérifier l'état et de l'affecter de la langue pour le TTS pour une utilisation ultérieure. Je reçois le pain grillé comme "Bouton doit travailler", mais il n'est pas activé. Pourquoi est-il si? Quel est le contourner?
J'ai en .fichier xml,
<Button
android:id="@+id/button1"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_width="200dp"
android:enabled="false"
android:text="@string/tts_text" />
Devrait je l'ai activé ici et puis désactiver et activer dans runtime??
- vérifiez si vous avez initialisé le bouton avec le bon id
- Oui, j'ai avec l'id correct.
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
setClickable
Aussi, l'utilisation
isEnabled()
pour vérifier l'étatVérifier votre bouton est enfoncé ou pas et d'écrire votre code.
Exemple de code.
J'espère que cela va vous aider.
Est peut-être trop tard pour y répondre, et que vous avez déjà trouvé une solution, mais vous pouvez utiliser de l'invalider pour forcer le bouton de rafraîchissement en fonction de son nouvel état:
vous pouvez atteindre par la désactivation et l'activation de la visibilité du bouton
voici un exemple
Utiliser un listener pour les deux boutons