我正在使用以下代码来搜索我的 Data Browser 。列是 LocationWeather ,该类称为 Nowcast
如果我的 Data Browser 中有纽约并且天气 "sunny" ,则 TextView showWeather 显示 "The weather in New York is sunny".但是,如果我搜索 Los Angeles 并且它不在 Data Browser 中,它会显示 "The weather in Los Angeles is null" 而它根本不应该根据代码输入 if 条件。我究竟做错了什么?

public void getData(){
    searchText = searchTextView.getText().toString();
    ParseQuery<ParseObject> query = ParseQuery.getQuery("Nowcast");
    query.whereEqualTo("Location", searchText);
    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> object, ParseException e) {
            if (e == null) {
                for (ParseObject weatherObject : object) {
                    weatherData = weatherObject.getString("Weather");
                }
                showWeather.setText("The weather in " + searchTextToString + " is " + weatherData);
            } else {
                Toast.makeText(NowcastSearch.this, "No such location found",Toast.LENGTH_LONG).show();
            }
        }
    });
}

最佳答案



仅当 ParseException 不为空时才应输入。换句话说,只有当您的查询出现问题时(例如,您为字段条件传递了错误类型的参数),它才不应该输入 if 条件(它的第一个分支)。

您的查询没有问题。所以没有抛出异常。没有一条记录与您的条件匹配的查询仍然是有效的查询。 object 列表只是空的,但整个过程没有任何错误。

关于android - ParseQuery 查找对象为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34175147/

10-11 21:34