2014-11-03 69 views
0

我在運行時得到一個空指針異常錯誤。我在下面的編碼中提到了錯誤行。我發佈了與該相關的代碼。我無法解決此問題。任何人都可以幫助我你知道如何解決這些問題。謝謝。空指針異常在FragmentPage

堆棧跟蹤:

11-03 05:14:58.729: E/AndroidRuntime(18247): java.lang.NullPointerException 
11-03 05:14:58.729: E/AndroidRuntime(18247): at com.qrme.FragmentPage.highlightCell(FragmentPage.java:473) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at com.qrme.FragmentPage.moveToNext(FragmentPage.java:455) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at com.qrme.FragmentPage$10.onItemClick(FragmentPage.java:351) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at android.widget.AdapterView.performItemClick(AdapterView.java:299) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at android.widget.AbsListView.performItemClick(AbsListView.java:1113) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2904) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at android.widget.AbsListView$3.run(AbsListView.java:3638) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at android.os.Handler.handleCallback(Handler.java:733) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at android.os.Handler.dispatchMessage(Handler.java:95) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at android.os.Looper.loop(Looper.java:136) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at android.app.ActivityThread.main(ActivityThread.java:5017) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at java.lang.reflect.Method.invokeNative(Native Method) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at java.lang.reflect.Method.invoke(Method.java:515) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
11-03 05:14:58.729: E/AndroidRuntime(18247): at dalvik.system.NativeStart.main(Native Method) 

FragmentPage.java:

public class FragmentPage extends Fragment { 

    GridView gridTable; 
static LinearLayout ll; 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     rootView = inflater.inflate(R.layout.fragmentxml, container, false); 

     initialize(rootView); 
     clickEvents(); 

     return rootView; 

    } 


    @Override 
    public void onResume() { 
     // TODO Auto-generated method stub 
     super.onResume(); 

    tablelist = DatabaseQueryHelper.getInstance().getContentTable(pageId); 
     System.out.println(tablelist); 
     System.out.println(pageId); 
     if (tablelist != null && !tablelist.isEmpty()) { 
      CustomeTableAdapter tableAdapter = new CustomeTableAdapter(
        getActivity(), R.layout.frame_table, tablelist); 
      gridTable.setAdapter(tableAdapter); 

     } else { 
      ll.setVisibility(View.GONE); 
      if(tableVisible && !getactivitytable) 
      { 
       if (tablelist == null 
         || tablelist.isEmpty() 
         && sharedpreference.get_sharedvalue(
           QRMConstants.VERSION).equals("1.0")) { 
        showDialog(); 


       } 

      } 
     } 

    } 


public void initialize(View v) { 


     gridTable = (GridView) rootView.findViewById(R.id.gridViewTable); 
     ll.setVisibility(View.GONE); 

     gridTable.setDrawSelectorOnTop(true); 

    } 

public void moveToNext(int nextposition) { 

     highlightCell(nextposition); --->455 th line error 
     ispaused = false; 
     play(nextposition); 

    } 

gridTable.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view, 
        final int position, long id) { 
       if (tablelist != null && !tablelist.isEmpty()) { 
        ll.setVisibility(View.VISIBLE); 
        player.reset(); 
        currentSelection = position; 
        moveToNext(currentSelection); --->351 th line error 
       } else { 
        ll.setVisibility(View.GONE); 
       } 
      } 
     }); 

public void highlightCell(int position) { 

     for (int i = 1; i < tablelist.size(); i++) { 

      gridTable.getChildAt(i - 1) 
        .setBackgroundResource(R.drawable.border); ---->473 rd line Error 

     } 

     gridTable.getChildAt(position).setBackgroundColor(
       getResources().getColor(R.color.dusty_grey)); 

    } 

fragmentxml.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relativeLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
    android:id="@+id/linearlayoutControll" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:background="@color/light_grey" 
    android:gravity="center" 
    android:orientation="horizontal" > 

    <ImageButton 
     android:id="@+id/imagebuttonLast" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/ic_action_previous" 
     android:scaleType="fitXY" /> 
     </LinearLayout> 
     <GridView 
     android:id="@+id/gridViewTable" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/linearlayoutControll" 
     android:layout_alignParentTop="true" 
     android:layout_margin="15dp" 
     android:listSelector="#00000000" 
     android:numColumns="2" 
     android:rotationY="180" > 
    </GridView> 

</RelativeLayout> 
+0

這是什麼ll.setVisibility(View.GONE); – 2014-11-03 11:02:22

+0

public void initialize(View v){ gridTable =(GridView)rootView.findViewById(R.id.gridViewTable); ll.setVisibility(View.GONE); gridTable.setDrawSelectorOnTop(true); }這行是什麼ll – 2014-11-03 11:03:12

+0

'靜態LinearLayout ll;'現在我編輯並添加了那個。@ NaveenTamrakar – 2014-11-03 11:12:36

回答

0

我認爲這是因爲該行返回null

gridTable.getChildAt(i - 1) 

我不知道是什麼tablelist包含但基本上我想,如果你嘗試採取從沒有在屏幕上繪製的gridview的項目,他們將是無效的。

+0

使用log.d我這樣得到它'Checkandroid.widget.GridView {b3f36478 VFED.VC. ...... ID 23,23-457,685#7f0a0022 app:id/gridViewTable}' – 2014-11-03 11:01:30

+0

使用Log.d記錄什麼? – TheRedFox 2014-11-03 11:02:10

+0

我用'Log.d(「網格突出顯示」,「檢查」+ gridTable);'並得到它像日誌類似'D /網格突出顯示(29749):Checkandroid.widget.GridView {b3f36478 VFED.VC. ...... ID 23,23-457,685#7f0a0022 app:id/gridViewTable}' – 2014-11-03 11:10:38