わかりました、ボタンが 2 つあります。1 つ目は「テキストの読み込み」で、2 つ目は「発言」です。
ここで、テキストがロードされていないときに [話す] ボタンをアクティブにしたくありません。
Load Text ボタンの onClickListener メソッドで EditText に値を設定することができました。私が呼び出したのと同じメソッド内で、
btnSpeak.setEnabled(true);
これを次のように初期化しました。
btnSpeak = (Button) findViewById(R.id.button1);
全体のコーディングは、
@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!");
}
}
これは、ステータスを確認し、さらに使用するために TTS に言語を割り当てるためです。「ボタンが機能するはずです」というトーストが表示されますが、有効になりません。なぜそうなのですか?回避策は何ですか?
私は.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" />
ここで有効にしてから、実行時に無効にして有効にする必要がありますか??