1

我正在尝试创建一个 if 语句,通过“-1、0、1、2、3、4 和 5”检查餐厅的“评级”。然后我需要用图像替换评级数字。我已经尝试过这样做,但应用程序不断崩溃,应用程序在没有 if 语句的情况下工作正常,并显示了 10 个最近的位置。这是代码:

JSONObject jo = (JSONObject) ja.get(i);
String name = jo.getString("BusinessName");
String rating = jo.getString("RatingValue");
String address1 = jo.getString("AddressLine1");
String address2 = jo.getString("AddressLine2");
String postcode = jo.getString("PostCode");

ImageSwitcher imageView = null;
if(rating.equalsIgnoreCase("-1")){
    imageView.setImageResource(R.drawable.rating0);
}else if(rating.equalsIgnoreCase("0")){
    imageView.setImageResource(R.drawable.rating0);
}else if(rating.equalsIgnoreCase("1")){
    imageView.setImageResource(R.drawable.rating0);
}else{
    //default case, if above all conditions will become false then this will call
}
4

3 回答 3

0
ImageSwitcher imageView = null;

其为空。

使其不为空。

于 2015-04-23T16:17:24.573 回答
0

更新:

除了下面的代码之外,您还需要设置一个视图工厂,以便可以将您的图像添加到某些东西中。

ImageSwitcher imageView = new ImageSwitcher(context);
imageView.setFactory(new ViewSwitcher.ViewFactory() {
        @Override
        public View makeView() {
            ImageView view = new ImageView(Location_assignment.this);
            return view;
        }
    });

然后将您的 if 语句放在此代码下方。


您的图像切换器为空。您需要先实例化图像切换器,然后才能为其分配图像。

ImageSwitcher imageView = new ImageSwitcher(context);
于 2015-04-23T16:18:31.270 回答
0

你必须检查两件事:

首先需要初始化imageView(因为它是null)。这就是 AS 对您的代码所说的:

方法调用“imageView.setImageResource(R.drawable.rating0)”可能会产生“java.lang.NullPointerException”

其次,检查变量“rating”是否不为空是一个好主意,因为它来自 JSON。

于 2015-04-23T16:21:24.330 回答