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>