Microsoft Translator APIを使用してAndroid Studioに翻訳アプリを作成しようとしていますが、何らかの理由で、テキストを翻訳する言語を決定するswitch文が実行されていません。 は私のコードは次のとおりです。このswitch文が実行されないのはなぜですか?
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater li = LayoutInflater.from(context);
final View promptsView = li.inflate(R.layout.alertdialog, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
alertDialogBuilder.setView(promptsView);
final Spinner spinner = (Spinner) promptsView.findViewById(R.id.LanguagePicker);
final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(Text.this,
R.array.language, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
alertDialogBuilder.setCancelable(false)
/*The setPositiveButton determines which language I want it translated to.*/
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
//this is the main line
text = spinner.getSelectedItem().toString();
spinner.setAdapter(adapter);
String r = textInput.getText().toString();
allTheTranslatedText = getTranslatedText(r);
Log.e("Checkpoint", "Program started to execute getTranslatedText()");
textOutput.setText(allTheTranslatedText);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
});
}
/* getTranslatedText() outputs text */
public String getTranslatedText (String text1){
Translate.setClientId("CLIENT ID");
Translate.setClientSecret("CLIENT SECRET");
String translatedText = "";
Log.e("Checkpoint", "getTranslatedText() was called");
try {
switch (text) {
case "English":
translatedText = Translate.execute(text1, Language.AUTO_DETECT, Language.ENGLISH); // location of Unhandled exception
outputLanguageLabel.setText("English");
Log.e("Checkpoint", "The program should work perfectly if this appears.");
case "French":
translatedText = Translate.execute(text1, Language.AUTO_DETECT, Language.FRENCH);
outputLanguageLabel.setText("French");
// location of Unhandled exception
case "Spanish":
translatedText = Translate.execute(text1, Language.AUTO_DETECT, Language.SPANISH);
outputLanguageLabel.setText("Spanish");
// location of Unhandled exception
case "German":
translatedText = Translate.execute(text1, Language.AUTO_DETECT, Language.GERMAN);
outputLanguageLabel.setText("German");
// location of Unhandled exception
case "Italian":
translatedText = Translate.execute(text1, Language.AUTO_DETECT, Language.ITALIAN);
outputLanguageLabel.setText("Italian");
// location of Unhandled exception
case "Russian":
translatedText = Translate.execute(text1, Language.AUTO_DETECT, Language.RUSSIAN);
outputLanguageLabel.setText("Russian");
// location of Unhandled exception
case "Mandarin":
translatedText = Translate.execute(text1, Language.AUTO_DETECT, Language.CHINESE_TRADITIONAL);
outputLanguageLabel.setText("Mandarin");
// location of Unhandled exception
case "Korean":
translatedText = Translate.execute(text1, Language.AUTO_DETECT, Language.KOREAN);
outputLanguageLabel.setText("Korean");
// location of Unhandled exception
case "Japanese":
translatedText = Translate.execute(text1, Language.AUTO_DETECT, Language.JAPANESE);
outputLanguageLabel.setText("Japanese");
// location of Unhandled exception
default:
Log.e("Checkpoint", "Program didn't recognize text.");
}
} catch (Exception e) {
e.printStackTrace();
}
return translatedText;
}
}
私が実行されているコードを決定するためにlogcatステートメントを使用していないとするコードが、私は、私は私のテキストをに翻訳したい言語として英語を選択したときに、logcatはこれを提出しました。
Checkpoint: Program started to execute getTranslatedText()
Checkpoint: getTranslatedText() was called
Checkpoint: The program should work perfectly if this appears
これは、3行目があったであろうので、switch文は、実行されていなかった意味します。その代わり、私はそれをやっただろうと思った何の
Checkpoint: Program started to execute getTranslatedText()
Checkpoint: getTranslatedText() was called
logcatに。誰かが理由を説明できますか?
UPDATE:別のエラーもあります:
ViewRootImpl: sendUserActionEvent() mView == null
いいえ変数 "text"はSpinnerの選択した言語であり、text1は翻訳しようとしているテキストです。 – MCoder
あなたは 'break;'を追加することを忘れました –
Um ...どこにブレークを入れますか? – MCoder