0

sqliteからデータを取得し、cardviewで表示したいです。私はすでに自分の問題の可能な解決策を読んで検索していますが、問題はまだ残っています。データを取得しようとすると、データはデータベースに確実に存在しますが、出力は表示されません。これは、すべてのファイルを取得するための私のデータベース コードです。

public List<Research> getAllResearch() {
    List<Research> researchList = new ArrayList<Research>();
    // Select All Query
    String selectQuery = "SELECT  * FROM " + FILE_TABLE;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            Research research = new Research();
            research.setId(Integer.parseInt(cursor.getString(0)));
            research.setTitle(cursor.getString(1));
            research.setAuthor(cursor.getString(2));
            research.setYear(cursor.getString(3));
            research.setDesc(cursor.getString(4));
            // Adding research to list
            researchList.add(research);
        } while (cursor.moveToNext());
    }

    Log.d(TAG,"student data"+ researchList.toString());

    // return research list
    return researchList;
}

CustomAdapter.java;

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

static Context context;
CustomAdapter(Context context){
    this.context=context;
}
static List<Research> my_data;

public CustomAdapter(Context context, List<Research> my_data) {
    this.context = context;
    this.my_data = my_data;
    this.my_data = new ArrayList<Research>();
}

@Override
public CustomAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext())
            .inflate(R.layout.card, viewGroup, false);
    ViewHolder viewHolder = new ViewHolder(v);
    return viewHolder;
}

@Override
public void onBindViewHolder(CustomAdapter.ViewHolder holder, int position) {

    holder.title.setText(my_data.get(position).getTitle());
    holder.author.setText(my_data.get(position).getAuthor());
    holder.year.setText(my_data.get(position).getYear());
}

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

public  class ViewHolder extends  RecyclerView.ViewHolder implements View.OnClickListener {

    public TextView title, author, year;

    public ViewHolder(View itemView) {
        super(itemView);
        title = (TextView) itemView.findViewById(R.id.title);
        author = (TextView) itemView.findViewById(R.id.author);
        year = (TextView) itemView.findViewById(R.id.year);

        itemView.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent = new Intent(context, ViewFiles.class);

        Bundle extras = new Bundle();
        extras.putInt("position", getAdapterPosition());
        intent.putExtras(extras);

        /*
        int i=getAdapterPosition();
        intent.putExtra("position", getAdapterPosition());*/
        context.startActivity(intent);
        Toast.makeText(CustomAdapter.context, "you have clicked Row " + getAdapterPosition(), Toast.LENGTH_LONG).show();
    }
   }
}

ViewFiles.java

public class ViewFiles extends AppCompatActivity {

RecyclerView recyclerView;
RecyclerView.LayoutManager layoutManager;
RecyclerView.Adapter adapter;
List<Research> data_list;
DbHelper db;
Session session;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_files);

    session = new Session(this);
    if (!session.loggedin()) {
        session.setLoggedin(false);
        startActivity(new Intent(ViewFiles.this, Login.class));

        db = new DbHelper(this);
        data_list = new ArrayList<Research>();
        data_list = db.getAllResearch();


        recyclerView = (RecyclerView) findViewById(R.id.recycler_view1);
        recyclerView.setHasFixedSize(true);


        layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);

        adapter = new CustomAdapter(this, data_list);
        recyclerView.setAdapter(adapter);
    }
}
}

これは logcat エラーです。

E/RecyclerView: No adapter attached; skipping layout
E/Surface: getSlotFromBufferLocked: unknown buffer: 0xee934ca0

願っています、あなたは私を助けることができますか?ありがとう:) これはlogcatエラー画像です

4

1 に答える 1