私は最近、私の論文のためのアンドロイドワードサーチアプリを開発しています。私は同時にアンドロイド開発を学んでいます。スコアリング用のカウンターを使用
checkAns
という名前のメソッドを使用して、ユーザーが自分のワードグリッドで正しい単語を選択したかどうかを判断します。これは、メソッドのコードです:
private boolean checkAns(TextView uTxt, List list) {
final LinearLayout wordList = (LinearLayout) findViewById(R.id.wordL);
String word = uTxt.getText().toString().toLowerCase();
int isCorrect = 0; // <====== IT DOESN'T INCREMENT! HELP!
for(int i = 0; i < Category.size ; i ++) {
if (word.equals(list.get(i))){
isCorrect++;
TextView tv = (TextView) wordList.findViewById (i);
tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
Log.e("OutPut:", String.valueOf(isCorrect));
return true;
}
}
は今ここに私の問題はisCorrect
変数です。ユーザーが選択した正しい単語の数を決定する必要があります。しかし、それは増加しません。私はそれがインクリメントかどうちょうど見にLog
を置くが、それは常に言う:
E /出力:: 1
質問:私はここで何をすべき?私の論理に何か間違っていますか?
どのようなヘルプ、コメント、答えも、非常に感謝しています。
TIA!
Category.sizeの値は何ですか? –
あなたのロジックが正しくないことは明らかです。あなたのループサイクルは、@オスカーが言ったように思ったよりも少なく繰り返されるか、あなたのリストに1つの単語のインスタンスしかないので、if文は一度真となります。 3番目の可能性は、単語を小文字に変更すると、リスト内の文字列と一致しないことです。単語は特定の文字列ですか?はいの場合、あなたのリストにはどれくらいのインスタンスが存在しますか? –
@OscarLundbergそれは5,8、または10です。 – Gboy