1

これは私が今持っているもので、適切な数のアイテムを取得しますが、列名が表示されます。個々のセル名ではありません。たとえば、データベースに 3 つのエントリがあります (確認したところ、問題なく動作しました)。次に、入力しようとするRecyclerViewと、名前を示す 3 つのエントリしか取得できません。

私のアダプター:

public class RecyclerViewAdapter extends RecyclerView.Adapter{

private List<Session> sessionLists;
private static Context sContext;

public RecyclerViewAdapter(List<Session> sessionLists){
    this.sessionLists = sessionLists;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {

    View layoutView = LayoutInflater
            .from(viewGroup.getContext())
            .inflate(R.layout.item_row, null);
    return new MyViewHolder(layoutView);
}

@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {

    Session sessionList = sessionLists.get(position);
    MyViewHolder myViewHolder = (MyViewHolder) viewHolder;
}

@Override
public int getItemCount() {
    return sessionLists.size();
}

/** This is our ViewHolder class */
public static class MyViewHolder extends RecyclerView.ViewHolder {

    public TextView tvSessionName;
    public TextView tvSessionDate;
    public TextView tvArrowsShot;

    public MyViewHolder(View itemView) {
        super(itemView); // Must call super() first
        tvSessionName = (TextView) itemView.findViewById(R.id.tvSessionName);
        tvSessionDate = (TextView) itemView.findViewById(R.id.tvSessionDate);
        tvArrowsShot = (TextView) itemView.findViewById(R.id.tvArrowsShot);
    }
}
}

これは私のSession.javaですSugar ORM

public class Session extends SugarRecord<Session> {
String date, name;

public Session(){
}

public Session(String date, String name){
    this.date = date;
    this.name = name;
}

public String[] getSession(){
    return new String[]{date, name};
}

public String toString(){
    return date;
}
}

これは私がメインアクティビティでそれを呼び出す方法です:

List<Session> sessionList = Session.listAll(Session.class);
                    RecyclerViewAdapter adapter = new RecyclerViewAdapter(sessionList);
                    recyclerView.setAdapter(adapter);
4

1 に答える 1

1

まあ、私は を設定するのを忘れたとは思わないTextViews。忘れたと思ったら

myViewHolder.tvSessionName.setText(sessionLists.get(position).toString());中身onBindViewHolder

これが正しい方法だと思います。そうでない場合は、人々が私に知らせます。

于 2015-02-04T20:05:36.850 に答える