2014-11-03 4 views
0

Я получаю ошибку исключения указателя нулевого элемента во время выполнения. Я упоминал строку ошибки в ниже кодировке. Я размещаю соответствующие коды. Я не могу решить это. Любой может мне помочь, если вы знаете, как их решить. Спасибо.null Указатель исключения в FragmentPage

StackTrace:

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); –

+0

public void initialize (View v) { gridTable = (GridView) rootView.findViewById (R.id.gridViewTable); ll.setVisibility (View.GONE); gridTable.setDrawSelectorOnTop (true); } Что такое ll в этой строке –

+0

'static LinearLayout ll;' теперь я отредактирован и добавил, что. @ NaveenTamrakar –

ответ

0

я думаю это потому, что эта строка возвращает нуль

gridTable.getChildAt(i - 1) 

Я не знаю, что tablelist содержит, но в основном я думаю, что если вы пытаетесь взять элементы из GridView, которые не нарисованные на экране они будут нулем.

+0

Использование log.d Я получаю его так: 'Checkandroid.widget.GridView {b3f36478 VFED.VC. ...... ID 23,23-457,685 # 7f0a0022 app: id/gridViewTable} ' –

+0

Использование Log.d для входа в систему? – TheRedFox

+0

Я использовал 'Log.d (« Grid Highlight »,« Check »+ gridTable);' и получить его в logcat, как 'D/Grid Highlight (29749): Checkandroid.widget.GridView {b3f36478 VFED.VC. ...... ID 23,23-457,685 # 7f0a0022 app: id/gridViewTable} ' –

Смежные вопросы