我在我的字符串名称中分别有几个文本,并希望查找是否匹配字符串名称id的输入。我把它们放在数组中并随机取一个如果随机匹配输入。
<string name="a">あ</string>
<string name="i">い</string>
<string name="u">う</string>
<string name="e">え</string>
<string name="o">お</string>
<string name="ka">か</string>
<string name="ki">き</string>
<string name="ku">く</string>
<string name="ke">け</string>
<string name="ko">こ</string>
<string-array name="kana">
<item>@string/a</item>
<item>@string/i</item>
<item>@string/u</item>
<item>@string/e</item>
<item>@string/o</item>
<item>@string/ka</item>
<item>@string/ki</item>
<item>@string/ku</item>
<item>@string/ke</item>
<item>@string/ko</item>
</string-array>
是否有这样的要求?
if (answer.equals(kanaArray[generatedIndex])) {
Toast.makeText(getApplicationContext(), "Sugoi!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "wrong!", Toast.LENGTH_SHORT).show();
}
这表明字符串
中的实际文本是什么谢谢
编辑:
对不起。用户输入如ka,a,ki,输入将与字符串id匹配。
答案 0 :(得分:0)
你可以这样做
String[] kanaArray = getResources().getStringArray(R.array.kana);
for(int index=0; i<kanaArray.length; i++) {
if (answer.equals(kanaArray[index])) {
Toast.makeText(getApplicationContext(), "Sugoi!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "wrong!", Toast.LENGTH_SHORT).show();
}
}
答案 1 :(得分:0)
好的,现在我知道你使用EditText
用户输入而不是我用按钮的假设。我不认为有一个很好的方法来获取平假名字符串的名称字符串。但是,您可以通过消除假名数组并使用getIdentifier
直接使用平假名字符串的字符串名称来有效地执行相同的操作。这就是我的意思:
//I'm making assumptions still, but here I'm somehow getting to the kana
TextView flashcard = (TextView) findViewById(R.id.flashcard);
String kana_char = flashcard.getText();
这里的应用程序包类例如是"com.example.kanaflashcards"
或者你的项目命名的所有内容,因此resolved_kana
成为输入romanji的假名,如果输入的是,则为空字符串不是有效的romanji字符串。然后,您可以将其与您显示的kana_char
进行匹配。
String user_input = "<value from edit text>";
String resolved_kana = (String) getResources().getText(getResources().getIdentifier(user_input, "string", "<application package class>"),"");
if (resolved_kana.equals(kana_char) {
Toast.makeText(getApplicationContext(), "Sugoi!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "wrong!", Toast.LENGTH_SHORT).show();
}