为什么recyclerView无法运行?

时间:2019-05-17 09:37:33

标签: android

两种视图类型的

回收站视图不起作用。 我想聊天程序。为了命令,我的消息显示必须针对不同对手的消息。 但是一样 如果向下滚动以停止

//ChatRecyclerAdapter code

public class ChatRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {


// adapter에 들어갈 list 입니다.
private ArrayList<Data> Data = new ArrayList<>();
private ArrayList<MeData> MeData = new ArrayList<>();

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
... }
@Override
public int getItemViewType(int position) {
    // Just as an example, return 0 or 2 depending on position
    // Note that unlike in ListView adapters, types don't have to be contiguous
    return position % 2 * 2;
}


@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
    // Item을 하나, 하나 보여주는(bind 되는) 함수입니다.
    if (holder instanceof ViewHolder0) {
        ((ViewHolder0) holder).onBind(Data.get(position));
    } else {
        ((ViewHolder2) holder).onBind(MeData.get(position));
    }


}


@Override
public int getItemCount() {
    // RecyclerView의 총 개수 입니다.

    return Data.size();
}


void addItem(Data data) {
    // 외부에서 item을 추가시킬 함수입니다.
    Data.add(data);
}

void addItem(MeData data) {
    // 외부에서 item을 추가시킬 함수입니다.
    MeData.add(data);
}



// RecyclerView의 핵심인 ViewHolder 입니다.
// 여기서 subView를 setting 해줍니다.
class ViewHolder0 extends RecyclerView.ViewHolder {

 ...
}

class ViewHolder2 extends RecyclerView.ViewHolder {

...
}
}


// MainCode use Recyclerview


if(chatData.getUserName() == MyName){
                MeData data = new MeData();
                data.setTitle(chatData.getMessage());
                adapter.addItem(data);
            }
            else{
                Data data = new Data();
                data.setTitle(OtherName);
                data.setContent(chatData.getMessage());
                data.setResId(R.drawable.background);
                adapter.addItem(data);
            }
            adapter.notifyDataSetChanged();

MeData,聊天项目->我的消息

数据,chaitem2->对手消息

我使用2个数据类和2个viewtype(2 viewholder)进行聊天显示

0 个答案:

没有答案