2015-05-26 22 views
-2

我用parsequery作爲對象的數組,我必須動態地創建基於str長度的parsequery對象no,所以我喜歡下面,但是當我運行它,它顯示Java.lang.NullPointer異常聲明parsequery作爲一個對象的數組,但它的拋出異常Java.lang.NullPointerException

package com.ahapunch.parse; 

import android.util.Log; 

import com.ahapunch.Listdata; 
import com.parse.FindCallback; 
import com.parse.Parse; 
import com.parse.ParseException; 
import com.parse.ParseObject; 
import com.parse.ParseQuery; 

import java.util.ArrayList; 
import java.util.List; 


public class Search { 
public ArrayList<Listdata> sl1=new ArrayList<Listdata>(); 
private ParseQuery<ParseObject>[] query; 

public void search(String searchString) 
{ 
     ArrayList<String> sl=new ArrayList<String>(); 
      String[] str= searchString.split("\\s+"); 
      /*for(int i=0;i<str.length;i++) 
      { 
       sl.add(str[i]); 
       System.out.println("lolo" + sl.get(i)); 
      }*/ 
    for(int j=0;j<str.length;j++) 
    { 

     query[j]=ParseQuery.getQuery("Audio"); 
     query[j].whereContains("audio_name",str[j]); 
    } 

    List<ParseQuery<ParseObject>> queries = new ArrayList<ParseQuery<ParseObject>>(); 
    for(int j=0;j<str.length;j++) 
    { 
    queries.add(query[j]); 
    } 
    ParseQuery<ParseObject> mainQuery = ParseQuery.or(queries); 

     Log.d("second", "second"); 
     mainQuery.findInBackground(new FindCallback<ParseObject>() { 
      @Override 
      public void done(List<ParseObject> audioList, ParseException e) { 
       if (e == null) { 
        if (audioList.size() > 0) { 
         System.out.println("size" + audioList.size()); 
         for (int i = 0; i < audioList.size(); i++) { 
          ParseObject p = audioList.get(i); 
          String name = p.getString("audio_name"); 
          Listdata l = new Listdata(); 
          l.audio_name = p.getString("audio_name"); 
          l.audio_category = p.getString("audio_category"); 
          l.audio_movie = p.getString("audio_movie"); 
          l.audio_actor = p.getString("audio_actor"); 
          l.audio_clip = p.getParseFile("audio_clip"); 
          l.audio_thumbnail = p.getParseFile("audio_thumbnail"); 
          sl1.add(l); 

          System.out.println("normal search" + sl1.get(i).audio_name); 
          //System.out.println(audio_name.get(i)+" "+audio_category.get(i)+" "+audio_movie.get(i)+" "+audio_actor.get(i)+" "+audio_thumbnail.get(i) +" "+audio_clip.get(i)); 
         } 


        } else { 
         System.out.println("no audio u searched for"); 
        } 

       } else { 
        Log.d("ohgaya", "ohgaya"); 

       } 
      } 
     }); 
    //} 

} 

}

我得到儘可能

 05-26 12:56:45.157 30931-30931/com.ahapunch E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.ahapunch, PID: 30931 
java.lang.NullPointerException 
     at com.ahapunch.parse.Search.search(Search.java:39) 
     at com.ahapunch.SignUpActivity$1.onClick(SignUpActivity.java:62) 
     at android.view.View.performClick(View.java:4456) 
     at android.view.View$PerformClick.run(View.java:18465) 
     at android.os.Handler.handleCallback(Handler.java:733) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5086) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
     at dalvik.system.NativeStart.main(Native Method) 

回答

1

看來你還沒有初始化的一個錯誤rray ParseQuery<ParseObject>[] query

嘗試在分割搜索字符串後添加以下行:query = new ParseQuery<ParseObject>[str.length];

相關問題