Ich schrieb diesen Code RecyclerAdapter für meine RecyclerView in einem Fragment. Ich habe versucht, die Hintergrundfarbe der Karten in recyclerView durch eine Reihe von Farb Strings holder.cardView.setCardBackgroundColor(Color.parseColor())
zufällig zu ändern vorbei Dieser Code gearbeitet und die Farben geändert zufällig dann aber nach wenigen Sekunden der App abgestürzt und warfen die folgenden Fehler in den logcatFehler Die Anwendung möglicherweise zu viel Arbeit auf seinem Hauptthread
Skipped 49 frames! The application may be doing too much work on its main thread.
Hier ist mein RecyclerAdapter.java
import android.graphics.Color;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.RecyclerViewHolder> {
String[] postText;
String[] groupName;
String[] backColor = {"#ff6347", "#c2571a", "#a3b86c", "#3c6478", "#EBC94"};
public RecyclerAdapter(String[] postText, String[] groupName){
this.postText = postText;
this.groupName = groupName;
}
@Override
public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view,parent,false);
RecyclerViewHolder recyclerViewHolder = new RecyclerViewHolder(view);
return recyclerViewHolder;
}
@Override
public void onBindViewHolder(RecyclerViewHolder holder, int position) {
holder.txPost.setText(postText[position]);
holder.txGroupName.setText(groupName[position]);
holder.cardView.setCardBackgroundColor(Color.parseColor(backColor[position]));
}
@Override
public int getItemCount() {
return postText.length;
}
public static class RecyclerViewHolder extends RecyclerView.ViewHolder{
TextView txPost;
TextView txGroupName;
CardView cardView;
public RecyclerViewHolder(View view)
{
super(view);
txPost = (TextView) view.findViewById(R.id.post_text);
cardView = (CardView) itemView.findViewById(R.id.card_view);
txGroupName = (TextView) view.findViewById(R.id.group_name);
}
}
}
Warum wird dieser Fehler auftritt? Und wie kann ich es reparieren? Ein bisschen Erklärung wird sehr hilfreich sein.