Aktywne Wpisy
wilang31 +21
To jaki w końcu ma kolor ta sukienka, u mnie na chacie już się prawie o to #!$%@?ą #heheszki #glupiewykopowezabawy
źródło: The_dress_blueblackwhitegold
Pobierz
ewa-m +53
#nocnazmiana #weekend #depresja
Dotarło do mnie że najlepsze lata dawno przeminęły. Lata dzieciństwa, kiedy do nocy biegało się po dworze, opowiadało straszne historie, wchodziło na drzewa zbierając papierówki, grało w gumę i skakankę. Prawdziwe dziecięce przyjaźnie, dyskoteki i pierwsze zauroczenia. Kiedy to tak realnym wydawało się dwunastolatce że taki Billie Joe z Green Day czy Larry Mullen z U2 kiedyś przyjedzie, naprawdę się w niej zakocha i przeżyją love story jak z
Dotarło do mnie że najlepsze lata dawno przeminęły. Lata dzieciństwa, kiedy do nocy biegało się po dworze, opowiadało straszne historie, wchodziło na drzewa zbierając papierówki, grało w gumę i skakankę. Prawdziwe dziecięce przyjaźnie, dyskoteki i pierwsze zauroczenia. Kiedy to tak realnym wydawało się dwunastolatce że taki Billie Joe z Green Day czy Larry Mullen z U2 kiedyś przyjedzie, naprawdę się w niej zakocha i przeżyją love story jak z





Piszę malutką apkę używającą SQLite, z którego dane wyświetlać ma RecyclerView, ale mam problem, bo wyskakuje mi komunikat: TaskDBHelper.getAllItems()' on a null object reference.
Jest to moje pierwsze zetknięcie z SQLite, więc za Chiny ludowe nie mam pojęcia gdzie zrobiłem błąd.
Rzeczona metoda:
public Cursor getAllItems() {
return mDatabase.query(
TaskContract.TaskEntry.TABLENAME,
null,
null,
null,
null,
null,
TaskEntry.COLUMNDATE + "DESC"
);
}
Wywołanie w onCreate:
RecyclerView recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
mMainAdapter = new MainAdapter(this, mTaskDBHelper.getAllItems());
recyclerView.setAdapter(mMainAdapter);
Adapter:
MainAdapter(Context context, Cursor cursor) {
mContext = context;
mCursor = cursor;
}
public class TaskViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.titletext) TextView titletext;
@BindView(R.id.datetext) TextView datetext;
@BindView(R.id.timetext) TextView timetext;
public TaskViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
@NonNull
@Override
public TaskViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(mContext);
View view = inflater.inflate(R.layout.taskitem, parent, false);
return new TaskViewHolder(view);
@DanielAquarius: wygląda na to, że mTaskDBHelper jest niezainicjalizowany w onCreate
Najpierw zrobiłem tak:
TaskDBHelper dbHelper = new TaskDBHelper(this);
mDatabase = dbHelper.getWritableDatabase();
efekt był taki sam. Więc wrzuciłem to: mTaskDBHelper = new TaskDBHelper(this);
I pojawił się to:
android.database.sqlite.SQLiteDatabase.query(java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String)' on a null object reference
Masz na myśli inicjację Adaptera w onCreate?
mMainAdapter = new MainAdapter(this, mTaskDBHelper.getAllItems());
co do tych NPE, to musisz debuggerem się pobawić sam po prostu i znaleźć czego w porę nie inicjalizujesz.
Nie inicjację, tylko inicjalizację. Tak, przekazujesz tam Activity do adaptera co zapewne spowoduje Ci wyciek pamięci. Jeżeli jest Ci koniecznie potrzebny kontekst wewnątrz adaptera to niech to będzie kontekst całej aplikacji. Ale w 99%
Ale faktycznie, wszystkie projekty komercyjne od 2 lat, w których uczestniczyłem są oparte o Realma :)
https://github.com/mkAndroDev/SimpleRemoteController - to jest napisane bardzo brzydko, ale z Realmem :)