Please let me know where I am going wrong to get the error because i ma creating an app which is using recyclerview i have one image and one text and one imagebutton in my recyclerview's item layout . but it is giving me error when i am setting image on iamgebutton in onBindviewholder method
this is my error
FATAL EXCEPTION: main Process: com.example.anonymous.recycleview, PID: 1008 android.content.res.Resources$NotFoundException: Resource ID #0x7f060057
at android.content.res.Resources.getValue(Resources.java:2558)
at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:330) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:195) at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188) at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100) at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:85) at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:94) at com.example.anonymous.recycleview.RecycleAdapter.onBindViewHolder(RecycleAdapter.java:45) at com.example.anonymous.recycleview.RecycleAdapter.onBindViewHolder(RecycleAdapter.java:17) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:6482) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:6515) at android.support.v7.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:5458) at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5724) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5563) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5559) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2229) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1556) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1516) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:608) at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3693) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3410) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3962) at android.view.View.layout(View.java:17938) at android.view.ViewGroup.layout(ViewGroup.java:5814) at android.support.constraint.ConstraintLayout.onLayout(ConstraintLayout.java:1197) at android.view.View.layout(View.java:17938) at android.view.ViewGroup.layout(ViewGroup.java:5814) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:344) at android.widget.FrameLayout.onLayout(FrameLayout.java:281) at android.view.View.layout(View.java:17938) at android.view.ViewGroup.layout(ViewGroup.java:5814) at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:443) at android.view.View.layout(View.java:17938) at android.view.ViewGroup.layout(ViewGroup.java:5814) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:344) at android.widget.FrameLayout.onLayout(FrameLayout.java:281) at android.view.View.layout(View.java:17938) at android.view.ViewGroup.layout(ViewGroup.java:5814) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1742) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585) at android.widget.LinearLayout.onLayout(LinearLayout.java:1494) at android.view.View.layout(View.java:17938) at android.view.ViewGroup.layout(ViewGroup.java:5814) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:344) at android.widget.FrameLayout.onLayout(FrameLayout.java:281) at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:3193) at android.view.View.layout(View.java:17938) at android.view.ViewGroup.layout(ViewGroup.java:5814) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2667) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2368) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1438) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.ja
code of my mainActivity package com.example.anonymous.recycleview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
RecyclerView recyClerView;
RecyclerView.Adapter adapter;
RecyclerView.LayoutManager layoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<item> i = new ArrayList<>();
int images[]=
{
R.drawable.icon_1,
R.drawable.icon_2,
R.drawable.icon_3,
R.drawable.icon_4,
R.drawable.icon_5,
R.drawable.icon_6,
R.drawable.icon_7,
R.drawable.icon_8,
};
for (int j=0;j<8;j++)
{
item t = new item("this is item",images[j],R.drawable.delete);
i.add(t);
}
recyClerView=findViewById(R.id.li);
adapter= new RecycleAdapter(i);
recyClerView.setAdapter(adapter);
layoutManager=new LinearLayoutManager(this);
recyClerView.setLayoutManager(layoutManager);
}
}
code of recyclerAdapter class
package com.example.anonymous.recycleview;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by Anonymous on 11/25/2017.
*/
public class RecycleAdapter extends RecyclerView.Adapter<RecycleAdapter.holderclas>
{
private ArrayList<item> i;
public RecycleAdapter(ArrayList<item> i)
{
this.i=i;
for(int y=0;y<i.size();y++)
{
System.out.println(i.get(y).getImageButton());
}
}
@Override
public holderclas onCreateViewHolder(ViewGroup parent, int viewType)
{
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.item,parent,false);
holderclas h = new holderclas(view);
return h;
}
@Override
public void onBindViewHolder(holderclas holder, final int position)
{
holder.detailOfItem.setText(i.get(position).getItemdetail());
holder.image.setImageResource(i.get(position).getImage());
holder.imagebutton.setImageResource(i.get(position).getImageButton());
holder.imagebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
i.remove(position);
notifyDataSetChanged();
}
});
}
@Override
public int getItemCount()
{
return i.size();
}
public static class holderclas extends RecyclerView.ViewHolder
{
ImageView image;
ImageButton imagebutton;
TextView detailOfItem;
public holderclas(View itemView) {
super(itemView);
image=itemView.findViewById(R.id.imageView);
imagebutton=itemView.findViewById(R.id.delete);
detailOfItem=itemView.findViewById(R.id.detail);
}
}
}
here is my item class which makes object to be shown in recyclerview
package com.example.anonymous.recycleview;
/**
* Created by Anonymous on 11/25/2017.
*/
public class item
{
private String Itemdetail;
private int image;
private int imageButton;
public item(String Itemdetail,int image,int imageButton)
{
this.Itemdetail=Itemdetail;
this.image=image;
this.imageButton=imageButton;
}
public String getItemdetail()
{
return Itemdetail;
}
public void setItemdetail(String itemdetail)
{
Itemdetail = itemdetail;
}
public int getImage()
{
return image;
}
public void setImage(int image) {
this.image = image;
}
public int getImageButton() {
return imageButton;
}
public void setImageButton(int imageButton) {
this.imageButton = imageButton;
}
}
here is my manifetfile
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.anonymous.recycleview">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
here is my build.gradle file
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.example.anonymous.recycleview"
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.android.support:recyclerview-v7:26.1.0'
}
here is the xml of mainActivity
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.anonymous.recycleview.MainActivity">
<android.support.v7.widget.RecyclerView
android:layout_width="370dp"
android:layout_height="438dp"
android:id="@+id/li"
android:layout_marginEnd="8dp"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginRight="8dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:text="Add"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>
here is the xml of each listitem
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<ImageView
android:id="@+id/imageView"
android:layout_width="74dp"
android:layout_height="70dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/detail"
app:layout_constraintHorizontal_bias="0.25"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
/>
<ImageButton
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:clickable="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.741"
app:layout_constraintStart_toEndOf="@+id/detail"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
/>
<TextView
android:id="@+id/detail"
android:layout_width="141dp"
android:layout_height="59dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:gravity="center"
android:text="This is detail of item"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.018" />
<View
android:layout_width="356dp"
android:layout_height="6dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"></View>
</android.support.constraint.ConstraintLayout>