Retrieve data from SQLite in RecyclerView inside fragment

Retrieve data from SQLite in RecyclerView inside fragment



I have an activity that contain custom Tablayout.


Tablayout



the Tablayot has pageViewer and link to a fragment.


Tablayot


pageViewer



I want to show data from my SQLite database in RecyclerView in fragment.


SQLite


RecyclerView



this is my codes:



DatabaseHelper.java:


package ir.shirazmetro;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper
private static final String TAG = "DatabaseHelper";

public static final String DATABASE_NAME = "MetroDB.db";
public static final String TABLE_NAME = "estation";
public static final String COL_1 = "station";
public static final String COL_2 = "time";
public static final String COL_3 = "line";

public DatabaseHelper(Context context)
super(context, DATABASE_NAME, null, 1);


@Override
public void onCreate(SQLiteDatabase db)
db.execSQL("create table " + TABLE_NAME + " (COL_1,COL_2,COL_3)");


@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);


public boolean insertData(String station, String time, String line)
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2, time);
long result = db.insert(TABLE_NAME, null, contentValues);
if (result == -1)
return false;
else
return true;



public Cursor getData()
SQLiteDatabase db = this.getWritableDatabase();
return db.rawQuery("select "+COL_2+" from " + TABLE_NAME, null);





My activity(station.java):


package ir.shirazmetro.views.activities;
import android.content.Intent;
import android.support.v4.view.ViewPager;
import android.support.design.widget.TabLayout;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import java.util.ArrayList;
import java.util.List;
import ir.shirazmetro.DatabaseHelper;
import ir.shirazmetro.R;
import ir.shirazmetro.other.components.ButtonCell;
import ir.shirazmetro.other.components.TextViewCell;
import ir.shirazmetro.views.adapters.BasePagerAdapter;
import ir.shirazmetro.views.adapters.MoviesAdapter;

public class estation extends BaseActivity
Toolbar mToolbar;
private TabLayout tbLayout;
private ViewPager vPager;

private List<DatabaseHelper> movies = new ArrayList<DatabaseHelper>();
private RecyclerView recyclerView;
private MoviesAdapter adapter;

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

mToolbar = findViewById(R.id.tlbr1);

setSupportActionBar(mToolbar);

initView();
setupWithViewPager();
tbLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener()
@Override
public void onTabSelected(TabLayout.Tab tab)



@Override
public void onTabUnselected(TabLayout.Tab tab)



@Override
public void onTabReselected(TabLayout.Tab tab)


);

recyclerView = findViewById(R.id.myRecycler);
adapter = new MoviesAdapter(movies);

recyclerView.setLayoutManager(new LinearLayoutManager(estation.this));
recyclerView.setAdapter(adapter);
DatabaseHelper getData = (DatabaseHelper) new DatabaseHelper(this).getData();
movies.add(getData);
adapter.notifyDataSetChanged();





private void setupWithViewPager()
BasePagerAdapter basePagerAdapter = new BasePagerAdapter(this, getSupportFragmentManager());
vPager.setAdapter(basePagerAdapter);
tbLayout.setupWithViewPager(vPager);



private void initView()
vPager = findViewById(R.id.view_pager);
tbLayout = findViewById(R.id.tab_layout);
backBtn = findViewById(R.id.backBtn);

backBtn.setOnClickListener((View.OnClickListener) this);



}



and this code is my Adapter:


package ir.shira.views.adapters;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.List;
import ir.shira.DatabaseHelper;
import ir.shira.R;
import ir.shira.models.movie;


public class MoviesAdapter extends RecyclerView.Adapter<MoviesAdapter.MovieViewHolder>

private List<movie> movies;
private Context context;

public MoviesAdapter(List<DatabaseHelper> movies)
movies = movies;

@NonNull
@Override
public MovieViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_to_dastgheyb,parent,false);
return new MovieViewHolder(view);

@Override
public void onBindViewHolder(@NonNull MovieViewHolder holder, int position)
holder.txtTime.setText(movies.get(position).getTime());

@Override
public int getItemCount()
return movies.size();

public class MovieViewHolder extends RecyclerView.ViewHolder

public TextView txtTime;

public MovieViewHolder(View itemView)

super(itemView);
txtTime = itemView.findViewById(R.id.textView);






my app crash when I run the project, any ideas?






Could you please post the log?

– ArbenMaloku
Sep 16 '18 at 6:19






what error do you get?

– Omid Ziyaee
Sep 16 '18 at 6:19






just crash.Unfortunately App has stopped

– afkariaus
Sep 16 '18 at 6:22






app will run.there is no error when compiling

– afkariaus
Sep 16 '18 at 6:22






error message you get in the logcat window

– Omid Ziyaee
Sep 16 '18 at 6:25




2 Answers
2



movies.get(position).getTime() retrieve DatabaseHelper, I think it is checked exception.



You are making mistake hear



When You creating List Obj.


private List<DatabaseHelper> movies = new ArrayList<DatabaseHelper>();



//.. List Type DatabaseHelper But You want movie ? so change this line to like this


private List<movie> movies = new ArrayList<movie>();



//movie is your model



Thanks for contributing an answer to Stack Overflow!



But avoid



To learn more, see our tips on writing great answers.



Required, but never shown



Required, but never shown




By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

ャフサォクコ ケウ,コ,ワ メ,ロスョノ゙,クネ,フムカヤヲニ,エコ゚ツ ウイオン゙ケワサネォキモュキォウイノンコチ゚メヌナイゥフュ,カヒウネェ ネ,ホノケ,ムュキ ッボーミュハ,チ ツス ィ メウイマヤ,゙ウチ ヅ ロ,ォジヌェ ャヌット ェ,マャ,チナエヒネソキツテ トホヲヲミーァ

Node.js puppeteer - Use values from array in a loop to cycle through pages