2016-06-30 35 views
0

私はこのコードをRecyclerAdapterで作成しました。私はこのコードが働いており、色がランダムに変化holder.cardView.setCardBackgroundColor(Color.parseColor())に色の文字列の配列を渡すことによって、ランダムにrecyclerViewのカードの背景色を変更しようとしましたが、その後エラーアプリケーションがメインスレッドであまりにも多くの作業を行っている可能性があります

Skipped 49 frames! The application may be doing too much work on its main thread. 
を数秒後にアプリがクラッシュしてlogcatに次のエラーを投げましたここ

は私の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); 

    } 
} 
} 

はなぜこのエラーが発生しているのか?そして、どうすればそれを修正することができますか?説明の少しは本当に役立つでしょう。

答えて

0

唯一考えられるのは、Color.parseColorです。色コードから色を見つけるのに時間がかかりすぎるかもしれません。アダプタの作成時にすべての色を解析し、それが機能するかどうかを確認してください。

関連する問題

 関連する問題