私のアプリケーションのMainActivityに2つのフラグメントがあります。 1つのフラグメントがBluetoothデバイスからデータを読み取り、データベースを作成します。その他の場合、このデータがBarGraphに表示されます。それは正常に動作しています。しかし、新しいデータが来たとき、BarGraphは動的に更新されません。私はPageChangeListenerを実施し、その結果BarGraphのフラグメントへのユーザの変更は、それがページが選択されるたびにフラグメントを更新します
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 1)を以下のように更新されたデータベースから読み込むことで、私のBarGraphのを更新するメソッドのupdateChartを持って取得する場合
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);
}
しかし、新しいデータが来ると更新されません。私は間違って何かしていますか?
P.S.これは確かに重複した質問ではありません。私はすべてのsimularものを通過し、それらが役に立たないことがわかった。私はあなたがあなたの代わりにnewInstance
を作成するコードの下にすべての時間を使用することができ、この刺激性のエラーは常に
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
ありがとうございました。それは魅力として働いた。 –