Ich habe 2 Fragmente in der MainActivity meiner App. Ein Fragment liest Daten vom Bluetooth-Gerät und erstellt eine Datenbank. Andere werden diese Daten anzeigen (in BarGraph). Es funktioniert gut. Der BarGraph wird jedoch nicht dynamisch aktualisiert, wenn neue Daten eintreffen. Ich implementierte eine PageChangeListener, so dass, wenn der Benutzer Änderungen an der BarGraph Fragment, sollte es aktualisiert werden wie folgtEin Fragment aktualisieren, wenn die Seite ausgewählt wurde
mViewPager.addOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
mSectionsPagerAdapter.instantiateItem(mViewPager, position);
if(position == 1){
AnalyticsFragment.newInstance(position).updateChart(getApplicationContext());
//af = new AnalyticsFragment();
//af.updateChart();
}
}..
AnalyticsFragment (BarGrapg one) hat eine Methode updateChart, die meine BarGraph aktualisiert durch Lesen von der Datenbank
public void updateChart(Context context){
//Getting weight and time from db
List<String> list = new ArrayList<String>();
if(context == null) //This is because I get NullPointerError here
return;
FeedReaderDbHelper mDbHelper = new FeedReaderDbHelper(context);
list = mDbHelper.getAllWeight();
if (list.isEmpty()){
Log.w(tag, "List of weights is empty!!");
return;
}
drawgraph(list);
}
Aber es wird nicht aktualisiert, wenn neue Daten kommen. Mache ich etwas falsch?
P.S. Dies ist sicherlich keine doppelte Frage. Ich habe alle gleichartigen durchgesehen und fand sie nicht hilfreich. Ich erhalte diese irritierenden Fehler immer
java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase android.content.Context.openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase$CursorFactory, android.database.DatabaseErrorHandler)' on a null object reference
Vielen Dank. Es hat als Charme funktioniert. –