I tried to get activity's context
from Fragment
's onAttach()
method.
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
context = activity.getApplicationContext();
obj = new MySQLiteHelper(context);
...
}
But, I'm still getting NullPointerException
. How should I structure my code to avoid this?
Here is my Fragment code :
public class ListTab extends Fragment {
View view;
Context context ; // I just created reference here
MySQLiteHelper obj; // and initialised in onAttach()
String[][] table;
byte[][] images;
Bitmap[] bitmap;
String[] title = new String[10];
String[] init_price = new String[10];
String[] cur_price = new String[10];
int len,i;
private OnFragmentInteractionListener mListener;
public ListTab() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// not sure when this is called, so left this empty.
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_list_items, container, false);
obj.open(); //I'm getting an exception here - NullPointerException
obj.read();
table = obj.getTable();
images = obj.getImages();
len = obj.getLength();
...
//some code to inflate fragment with Listview
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
context = activity.getApplicationContext();
obj = new MySQLiteHelper(context);
...
//some code
}
...
// some other methods
}
What is the cause of the problem? Can anyone explain me please?