There is a CardView inside the RecyclerView.

At attempt to make setText at one of TextView inside CardView error takes off. (Error Method):

 holder.managerPlan.setText(listData.get(position).getManagerPlan()); 

If you comment it out - the application will start without errors.

Error log:

 07-11 09:37:22.221 3243-3243/ru.alexbykov.cardviewtest E/AndroidRuntime: FATAL EXCEPTION: main Process: ru.alexbykov.cardviewtest, PID: 3243 android.content.res.Resources$NotFoundException: String resource ID #0x64 at android.content.res.Resources.getText(Resources.java:299) at android.support.v7.widget.ResourcesWrapper.getText(ResourcesWrapper.java:52) at android.widget.TextView.setText(TextView.java:4132) at ru.alexbykov.cardviewtest.ManagersListAdapter$override.onBindViewHolder(ManagersListAdapter.java:46) at ru.alexbykov.cardviewtest.ManagersListAdapter$override.access$dispatch(ManagersListAdapter.java) at ru.alexbykov.cardviewtest.ManagersListAdapter.onBindViewHolder(ManagersListAdapter.java:0) at ru.alexbykov.cardviewtest.ManagersListAdapter.onBindViewHolder(ManagersListAdapter.java:15) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574) at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2906) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3283) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1076) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:435) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557) at android.widget.LinearLayout.onLayout(LinearLayout.java:1466) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579) at android.widget.FrameLayout.onLayout(FrameLayout.java:514) at android.view.View.layout(View.java:15671) at android.view.ViewGroup.layout(ViewGroup.java:5038) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2086) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) at android.view.Choreographer.doCallbacks(Choreographer.java:580) at android.view.Choreographer.doFrame(Choreographer.java:550) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreogra 

MainActivity:

  package ru.alexbykov.cardviewtest; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); startFragment(); } private void startFragment() { BlankFragment fragment = new BlankFragment(); getSupportFragmentManager() .beginTransaction() .replace(R.id.container, fragment) .addToBackStack(null) .commit(); } } 

BlankFragment:

  package ru.alexbykov.cardviewtest; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; import java.util.List; /** * A simple {@link Fragment} subclass. */ public class BlankFragment extends Fragment { View view; public BlankFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment_blank, container, false); initRecycler(); return view; } private void initRecycler() { RecyclerView rv = (RecyclerView) view.findViewById(R.id.recyclerView); rv.setLayoutManager(new LinearLayoutManager(getContext())); rv.setAdapter(new ManagersListAdapter(createManagers())); } private List<ManagersDTO> createManagers() { List<ManagersDTO> listManagers = new ArrayList<>(); listManagers.add(new ManagersDTO("Alex Pavlov", 100)); listManagers.add(new ManagersDTO("Ivan Pavlov", 95)); listManagers.add(new ManagersDTO("Petr Pavlov", 75)); listManagers.add(new ManagersDTO("Stepan Pavlov", 60)); listManagers.add(new ManagersDTO("Azik Pavlov", 54)); listManagers.add(new ManagersDTO("Azik Myand", 54)); listManagers.add(new ManagersDTO("Azik Specca", 54)); listManagers.add(new ManagersDTO("Azik Kane", 54)); listManagers.add(new ManagersDTO("Azik McDonald", 54)); listManagers.add(new ManagersDTO("Azik Jagr", 54)); return listManagers; } } 

ManagersDTO:

 package ru.alexbykov.cardviewtest; public class ManagersDTO { String fullName; int managerPlan; public String getFullName() { return fullName; } public ManagersDTO(String fullName, int managerPlan) { this.fullName = fullName; this.managerPlan=managerPlan; } public int getManagerPlan() { return managerPlan; } } 

ManagersListAdapter:

 public class ManagersListAdapter extends RecyclerView.Adapter<ManagersListAdapter.ManagersHolder> { private List<ManagersDTO> listData; public ManagersListAdapter(List<ManagersDTO> listData) { this.listData = listData; } @Override public ManagersHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.manager_item, parent, false); return new ManagersHolder(view); } @Override public void onBindViewHolder(ManagersHolder holder, int position) { // ManagersDTO item = listData.get(position); holder.managersName.setText(listData.get(position).getFullName()); holder.managerPlan.setText(listData.get(position).getManagerPlan()); //Ошибка вот в этой строке /* holder.managersName.setText(item.getFullName()); holder.managerPlan.setText(item.getManagerPlan());*/ } @Override public int getItemCount() { return listData.size(); } 

Managersholder

  public static class ManagersHolder extends RecyclerView.ViewHolder { TextView managerName; TextView managerPlan; CardView cardView; public ManagersHolder(View itemView) { super(itemView); cardView = (CardView) itemView.findViewById(R.id.cardView); managerName = (TextView) itemView.findViewById(R.id.managerName); managerPlan = (TextView) itemView.findViewById(R.id.managerPlan); } } } 

activity_main.xml:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/container" tools:context="ru.alexbykov.cardviewtest.MainActivity"> </RelativeLayout> 

fragment_blank.xml:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="ru.alexbykov.cardviewtest.BlankFragment" android:paddingTop="5dp" android:paddingBottom="5dp" android:orientation="vertical" > <!-- TODO: Update blank fragment layout --> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recyclerView" /> </LinearLayout> 

manager_item.xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:card="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" android:layout_marginBottom="5dp" > <android.support.v7.widget.CardView android:id="@+id/cardView" android:layout_width="match_parent" android:layout_height="wrap_content" card:cardElevation="2dp" card:cardUseCompatPadding="true" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" > <TextView android:id="@+id/managerName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="8pt" /> <TextView android:id="@+id/managerPlan" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="8pt" android:text="100%" android:layout_alignParentRight="true" /> </RelativeLayout> </android.support.v7.widget.CardView> </LinearLayout> 
  • It is not necessary to lay out the whole project in the question) It was enough to have one line from the logs with an error and the line itself, where it arises) - YuriySPb

1 answer 1

The getManagerPlan() method returns an int , and the TextView does not have a setText method that would accept int , or rather, it does, but it accepts resid , so you have an error of this type:

Resources $ NotFoundException: String resource ID # 0x64

Therefore, you must either return the managerPlan as a String , or create a string in onBindViewHolder like this:

 holder.managerPlan.setText(""+listData.get(position).getManagerPlan()); 

or so:

 holder.managerPlan.setText(String.valueOf(listData.get(position).getManagerPlan())); 
  • Happened. Thank! - no news
  • @nonews yes not for that :) - ermak0ff