Reputation: 11
Here's my expected result :
MainActivity has a toolbar (Refresh icon) and TAB
FGT_Monitor Activity has a ListView
Click on Refresh icon from Toolbar, it will call FGT_Monitor's Refresh_Listview to refresh the Listview.
Here's my extracted code:
public class MainActivity extends AppCompatActivity {
public final FGT_Monitor fgt_monitor = new FGT_Monitor();
private OnRefresh_Monitor_Listview_Clicked onRefresh_Monitor_Listview_Clicked;
public interface OnRefresh_Monitor_Listview_Clicked {
void Refresh_Monitor_Listview();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
onRefresh_Monitor_Listview_Clicked = fgt_monitor;
}
public interface OnRefresh_Monitor_Listview_Clicked {
void Refresh_Monitor_Listview();
}
}
public class FGT_Monitor extends Fragment implements MainActivity.OnRefresh_Monitor_Listview_Clicked {
@Override
public void Refresh_Monitor_Listview() {
Refresh_Listview();
}
private void Refresh_Listview() {
monitorList = new ArrayList<>();
monitorList.clear();
if (Create_Data_Array()) {
adapter.notifyDataSetChanged();
}
}
}
public class FGT_Monitor_ListView_Adapter extends BaseAdapter {
private List<DB_Monitor> monitorList;
private LayoutInflater inflater;
public FGT_Monitor_ListView_Adapter(Context context, List<DB_Monitor> monitorList){
inflater=(LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
this.monitorList=monitorList;
}
}
However, the above coding causes Fatal Exception. It's due to the "adapter" pointed to a null object reference.
E/AndroidRuntime: FATAL EXCEPTION: main Process: co.example.chengivan.plantwaterringsystem, PID: 6492 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference at co.example.chengivan.plantwaterringsystem.FGT_Monitor_ListView_Adapter.(FGT_Monitor_ListView_Adapter.java:19) at co.example.chengivan.plantwaterringsystem.FGT_Monitor.Refresh_Listview(FGT_Monitor.java:123) at co.example.chengivan.plantwaterringsystem.FGT_Monitor.Refresh_Monitor_Listview(FGT_Monitor.java:116) at co.example.chengivan.plantwaterringsystem.MainActivity.onOptionsItemSelected(MainActivity.java:555) at android.app.Activity.onMenuItemSelected(Activity.java:3204) at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:407) at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:195) at android.support.v7.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:108) at android.support.v7.app.AppCompatDelegateImplV9.onMenuItemSelected(AppCompatDelegateImplV9.java:674) at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:171) at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:973) at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:963) at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:624) at android.support.v7.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:150) at android.view.View.performClick(View.java:5610) at android.view.View$PerformClick.run(View.java:22265) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Please advise how I can fix the above issue. If no idea, do I have another way to do same thing?
Thanks in advance.
Upvotes: 0
Views: 67
Reputation: 1637
Log says your context
is null in adapter class. I mean you passed a null context when create a new adapter.
Upvotes: 0