我最近正在为我的论文开发一个android wordsearch应用程序,我只是在同时学习android开发。
我有一个名为@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == INTENT_COUNTRY_REQUEST
&& data != null) {
String SName = data.getExtras().getString("SName");
String CNme= data.getExtras().getString("CNme")
}
}
}
的方法来确定用户是否在我的wordgrid上选择了正确的单词。这是方法的代码:
class del : NSObject, URLSessionDownloadDelegate {
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) {
let result = try? String(contentsOf: location)
if let result = result {
print (result)
}
}
}
现在我的问题是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;
}
}
放在那里只是为了看它是否会增加,但总是说:
E / OutPut :: 1
问题:我该怎么办?我的逻辑有什么不对吗?
任何帮助,评论和答案都非常感谢。
TIA!
答案 0 :(得分:2)
但确实增加了。您将其指定为0并输出1.
最有可能的问题是for循环。它似乎只运行一次迭代,因此isCorrect
只会增加一次。
检查Category.size
它的价值是多少?由于它是用PascalCase命名的,我假设它是一个类,也许问题是你将它作为静态类而不是对象引用引用。
尝试实例化Category
Category cat = new Category();
像这样。使用该对象更改类中的数据,然后使用cat.size
进行检查
我发现你的isCorrect
变量没有问题,但是我建议你的增量是关闭循环之前发生的最后一件事,那样如果你需要使用它的值,它实际上代表了当前迭代的值。
答案 1 :(得分:0)
我终于设法解决了这个错误。我只使用parseInt
TextView()
的字符串值,并在每次用户找到正确答案时将其减去1。感谢您对我的逻辑的所有帮助和许可!