2015-01-04 88 views
0

我有一個片段,我想顯示我的自定義gridview。 gridview工作正常,但是當我把它放在片段中時,它的力量就會接近。 這是我的代碼:錯誤custome gridview中的片段

片段:

public HomeFragment() { 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_home, container, 
      false); 
    int[] icons = { R.drawable.image1, R.drawable.image2, R.drawable.image5 }; 
    String[] names = { "asd ", "Asdasd", "asd " }; 

    CustomGrid grid = new CustomGrid(getActivity().getApplicationContext(), names, icons); 
    GridView g = (GridView) getActivity().findViewById(R.id.gridView1); 
    g.setAdapter(grid); 
    return rootView; 
} 

這是我的亞行數時,其強制關閉:

01-04 08:30:22.899: E/AndroidRuntime(2379): FATAL EXCEPTION: main 
01-04 08:30:22.899: E/AndroidRuntime(2379): java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.tashrifat/com.plusnet.tashrifat.MainActivity}: java.lang.NullPointerException 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.os.Looper.loop(Looper.java:137) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.ActivityThread.main(ActivityThread.java:5103) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at java.lang.reflect.Method.invoke(Method.java:525) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at dalvik.system.NativeStart.main(Native Method) 
01-04 08:30:22.899: E/AndroidRuntime(2379): Caused by: java.lang.NullPointerException 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at com.plusnet.tashrifat.HomeFragment.onCreateView(HomeFragment.java:28) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.Fragment.performCreateView(Fragment.java:1695) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:885) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1057) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.BackStackRecord.run(BackStackRecord.java:682) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1435) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.Activity.performStart(Activity.java:5142) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 
01-04 08:30:22.899: E/AndroidRuntime(2379):  ... 11 more 
+0

CustomGrid構造函數內部發生了什麼?離開主UI線程。 – 2015-01-04 13:48:35

+0

其中GridView1'GridView存在的佈局? 'R.layout.fragment_home'中的 – 2015-01-04 13:49:17

+0

@ρяσѕρєяK – amir 2015-01-04 14:03:13

回答

1

使用rootView而不是getActvity()初始化GridView控件,因爲GridView控件存在於fragment_home佈局這是目前的片段佈局:

GridView g = (GridView) rootView.findViewById(R.id.gridView1);