使用计数器进行评分

时间:2017-02-11 07:21:38

标签: java android android-studio

我最近正在为我的论文开发一个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!

2 个答案:

答案 0 :(得分:2)

但确实增加了。您将其指定为0并输出1.

最有可能的问题是for循环。它似乎只运行一次迭代,因此isCorrect只会增加一次。

检查Category.size它的价值是多少?由于它是用PascalCase命名的,我假设它是一个类,也许问题是你将它作为静态类而不是对象引用引用。

尝试实例化Category

类型的对象
Category cat = new Category();
像这样。使用该对象更改类中的数据,然后使用cat.size

进行检查

我发现你的isCorrect变量没有问题,但是我建议你的增量是关闭循环之前发生的最后一件事,那样如果你需要使用它的值,它实际上代表了当前迭代的值。

答案 1 :(得分:0)

我终于设法解决了这个错误。我只使用parseInt TextView()的字符串值,并在每次用户找到正确答案时将其减去1。感谢您对我的逻辑的所有帮助和许可!