android.content.res.Resources $ NotFoundException:在setImageResource中

时间:2018-08-22 15:21:18

标签: java android android-arrayadapter android-resources listadapter

我的应用程序出现以下错误。预先感谢

我的对象

public ListModel(String mName,int hours,int minutes/*,boolean isDaily*/,Integer imageId){
    this.name = mName;
    this.hours = hours;
    this.minutes = minutes;
    this.totalTime = minutes*60 + hours*3600;  // change in seconds

    this.timeLeft = totalTime;
    this.imageId = imageId;
    this.statusId = statusId;
    this.isDone =false;

    }

public boolean isDone() {
    return isDone;
}

public void setDone(boolean done) {
    isDone = done;
}

public Integer getImageId() {
    return imageId;
}

public Integer getStatusId() {
    return statusId;
}

我的适配器  公共视图getView(最终int位置,@Nullable View convertView,@NonNull ViewGroup父级){         LayoutInflater layoutInflater = LayoutInflater.from(context);         视图view = layoutInflater.inflate(resource,null,false);

    TextView text1 = (TextView)view.findViewById(R.id.textView1);
    TextView time = (TextView) view.findViewById(R.id.time);
    TextView percent = (TextView)view.findViewById(R.id.percent);
    ImageView icon = (ImageView)view.findViewById(R.id.imageView2);
    ImageView status = (ImageView)view.findViewById(R.id.status);
    TypedArray array ;

    ListModel task = tasklist.get(position);
    time.setText(task.getHours()*60 + task.getMinutes()+"m");
    if(task.getTotalTime()!=0){
    percent.setText((int)(100 - task.getTimeLeft()*100/task.getTotalTime())+"%");
    }
    else {
        percent.setText("0%");
    }
    text1.setText(task.getName());
    if(task.getImageId()!=null) {
        icon.setImageResource(task.getImageId());   //////  Error is here (line 61)
    }else {
        icon.setImageResource(R.drawable.circular);
    }
    if(task.getStatusId()!=null) {
        status.setImageResource(task.getStatusId());
    }else {
        status.setImageResource(R.drawable.pending);
    }

    return view;
}

列表中对象的初始化

 temp2 = new ListModel(data.getStringExtra("name"), data.getIntExtra("hours", 0),
                        data.getIntExtra("minutes", 0),
                        data.getIntExtra("icon", R.drawable.workout)); 



08-22 20:40:37.074 12676-12676/com.example.lenovo.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.lenovo.myapplication, PID: 12676
android.content.res.Resources$NotFoundException: Resource ID #0x7f02007a
    at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:201)
    at android.content.res.MiuiResourcesImpl.getValue(MiuiResourcesImpl.java:94)
    at android.content.res.Resources.getValue(Resources.java:1304)
    at android.support.v7.widget.AppCompatDrawableManager.createDrawableIfNeeded(AppCompatDrawableManager.java:236)
    at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:199)
    at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190)
    at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)
    at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:73)
    at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:81)
    at com.example.lenovo.myapplication.ListAdapter.getView(ListAdapter.java:68)
    at android.widget.AbsListView.obtainView(AbsListView.java:2367)
    at android.widget.ListView.measureHeightOfChildren(ListView.java:1326)
    at android.widget.ListView.onMeasure(ListView.java:1233)

2 个答案:

答案 0 :(得分:0)

尝试将ImageView保持在Java代码文件之外的位置。 编译/构建项目,然后在必须将其设置为资源的java文件中使用它。

答案 1 :(得分:0)

尝试记录的值:

task.getImageId()

  

if(task.getImageId()!= null){           icon.setImageResource(task.getImageId());       }   其他{           icon.setImageResource(R.drawable.circular);       }

在分配之前,它会给您提示。