Note that there are some explanatory texts on larger screens.

plurals
  1. POgetActivity returning null from fragment
    text
    copied!<p>For school I am making an android app. For this app I have a fragment, which shows a gridview with just strings, from a database. For this I need a fragment. When I call getActivity(), it returns null. The onAttach method, as suggested <a href="https://stackoverflow.com/questions/6215239/getactivity-returns-null-in-fragment-function">here</a> doesn't get called before the app crashes. How should I solve this?<br> weekFragmetn.xml:</p> <pre><code>package nl.siebeh.schoolmate; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.GridView; public class weekFragment extends Fragment { dbLayer db; Context mContext; @Override public void onAttach(Activity activity) { mContext = getActivity(); Log.i("Schoolmate","onAttach called"); super.onAttach(activity); } public weekFragment newInstance(String title) { Log.i("Schoolmate","newInstance called"); db = new dbLayer(mContext); weekFragment fragment = new weekFragment(); ArrayList&lt;ArrayList&lt;Object&gt;&gt; result = null; if(title == "leraren"){ result = db.getAllRowsAsArrays("weekTeacher", null); }else if(title == "locatie"){ result = db.getAllRowsAsArrays("weekLocation", null); }else if(title == "vakken"){ result = db.getAllRowsAsArrays("weekSubjects", null); } String[] array = new String[60]; for(int i = 0; i &lt; 60; i++){ array[i] = ""; } array[1] = getResources().getStringArray(R.array.days)[0]; array[2] = getResources().getStringArray(R.array.days)[1]; array[3] = getResources().getStringArray(R.array.days)[2]; array[4] = getResources().getStringArray(R.array.days)[3]; array[5] = getResources().getStringArray(R.array.days)[4]; for(int i = 1; i &lt; 10; i++){ array[i] = Integer.toString(i); } for(int position = 0; position &lt; result.size(); position++){ ArrayList&lt;Object&gt; row = result.get(position); int hour = Integer.valueOf(row.get(1).toString()).intValue(); int day = Integer.valueOf(row.get(0).toString()).intValue(); int pos = 6 * hour + day; array[pos] = row.get(position).toString(); } fragment.mContent = array; return fragment; } private String[] mContent = {""}; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (container == null) { return null; } View v = inflater.inflate(R.layout.week_fragment, container, false); GridView gridview = (GridView) v.findViewById(R.id.gridview); gridview.setAdapter(new weekAdapter(mContext, mContent)); return gridview; } @Override public boolean onContextItemSelected(MenuItem item) { return super.onContextItemSelected(item); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); } } </code></pre> <p>logcat: (since click on the item the item in a list that starts the activity, where the fragment is started/embedded)</p> <pre><code> 09-29 19:10:56.611: INFO/ActivityManager(70): Starting: Intent { cmp=nl.siebeh.schoolmate/.overviewWeek } from pid 536 09-29 19:10:56.970: INFO/Schoolmate(536): newInstance called 09-29 19:11:06.631: WARN/ActivityManager(70): Launch timeout has expired, giving up wake lock! 09-29 19:11:06.671: WARN/ActivityManager(70): Activity idle timeout for HistoryRecord{40770188 nl.siebeh.schoolmate/.overviewWeek} 09-29 19:12:20.661: DEBUG/SntpClient(70): request time failed: java.net.SocketException: Address family not supported by protocol 09-29 19:14:11.811: DEBUG/dalvikvm(536): Debugger has detached; object registry had 413 entries 09-29 19:14:11.811: ERROR/SchoolMate(536): java.lang.NullPointerException 09-29 19:14:11.811: INFO/SchoolMate(536): Context is null 09-29 19:14:11.820: WARN/System.err(536): java.lang.NullPointerException 09-29 19:14:11.820: WARN/System.err(536): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118) 09-29 19:14:11.820: WARN/System.err(536): at nl.siebeh.schoolmate.dbLayer.&lt;init&gt;(dbLayer.java:50) 09-29 19:14:11.820: WARN/System.err(536): at nl.siebeh.schoolmate.weekFragment.newInstance(weekFragment.java:31) 09-29 19:14:11.820: WARN/System.err(536): at nl.siebeh.schoolmate.fragmentAdapter.getItem(fragmentAdaptar.java:21) 09-29 19:14:11.820: WARN/System.err(536): at nl.siebeh.schoolmate.titleFragmentAdapter.getItem(titleFragmentAdapter.java:1) 09-29 19:14:11.820: WARN/System.err(536): at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:62) 09-29 19:14:11.820: WARN/System.err(536): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:321) 09-29 19:14:11.820: WARN/System.err(536): at android.support.v4.view.ViewPager.populate(ViewPager.java:441) 09-29 19:14:11.820: WARN/System.err(536): at android.support.v4.view.ViewPager.onAttachedToWindow(ViewPager.java:563) 09-29 19:14:11.820: WARN/System.err(536): at android.view.View.dispatchAttachedToWindow(View.java:6156) 09-29 19:14:11.820: WARN/System.err(536): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1122) 09-29 19:14:11.820: WARN/System.err(536): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1127) 09-29 19:14:11.820: WARN/System.err(536): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1127) 09-29 19:14:11.820: WARN/System.err(536): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1127) 09-29 19:14:11.820: WARN/System.err(536): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1127) 09-29 19:14:11.820: WARN/System.err(536): at android.view.ViewRoot.performTraversals(ViewRoot.java:765) 09-29 19:14:11.830: WARN/System.err(536): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 09-29 19:14:11.840: WARN/System.err(536): at android.os.Handler.dispatchMessage(Handler.java:99) 09-29 19:14:11.840: WARN/System.err(536): at android.os.Looper.loop(Looper.java:123) 09-29 19:14:11.840: WARN/System.err(536): at android.app.ActivityThread.main(ActivityThread.java:3683) 09-29 19:14:11.840: WARN/System.err(536): at java.lang.reflect.Method.invokeNative(Native Method) 09-29 19:14:11.840: WARN/System.err(536): at java.lang.reflect.Method.invoke(Method.java:507) 09-29 19:14:11.850: WARN/System.err(536): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 09-29 19:14:11.850: WARN/System.err(536): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 09-29 19:14:11.850: WARN/System.err(536): at dalvik.system.NativeStart.main(Native Method) 09-29 19:14:11.850: DEBUG/AndroidRuntime(536): Shutting down VM 09-29 19:14:11.850: WARN/dalvikvm(536): threadid=1: thread exiting with uncaught exception (group=0x40015560) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): FATAL EXCEPTION: main 09-29 19:14:11.870: ERROR/AndroidRuntime(536): java.lang.NullPointerException 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at nl.siebeh.schoolmate.weekFragment.newInstance(weekFragment.java:49) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at nl.siebeh.schoolmate.fragmentAdapter.getItem(fragmentAdaptar.java:21) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at nl.siebeh.schoolmate.titleFragmentAdapter.getItem(titleFragmentAdapter.java:1) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:62) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:321) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.support.v4.view.ViewPager.populate(ViewPager.java:441) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.support.v4.view.ViewPager.onAttachedToWindow(ViewPager.java:563) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.view.View.dispatchAttachedToWindow(View.java:6156) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1122) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1127) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1127) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1127) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1127) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.view.ViewRoot.performTraversals(ViewRoot.java:765) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.os.Handler.dispatchMessage(Handler.java:99) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.os.Looper.loop(Looper.java:123) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at android.app.ActivityThread.main(ActivityThread.java:3683) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at java.lang.reflect.Method.invokeNative(Native Method) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at java.lang.reflect.Method.invoke(Method.java:507) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 09-29 19:14:11.870: ERROR/AndroidRuntime(536): at dalvik.system.NativeStart.main(Native Method) 09-29 19:14:11.890: WARN/ActivityManager(70): Force finishing activity nl.siebeh.schoolmate/.overviewWeek 09-29 19:14:12.413: WARN/ActivityManager(70): Activity pause timeout for HistoryRecord{40770188 nl.siebeh.schoolmate/.overviewWeek} 09-29 19:14:21.910: WARN/ActivityManager(70): Launch timeout has expired, giving up wake lock! 09-29 19:14:22.441: WARN/ActivityManager(70): Activity idle timeout for HistoryRecord{4070c7a0 nl.siebeh.schoolmate/.schoolmate} 09-29 19:14:32.451: WARN/ActivityManager(70): Activity destroy timeout for HistoryRecord{40770188 nl.siebeh.schoolmate/.overviewWeek} </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload