2015-09-22 39 views
0

讀我有一個代碼,當我嘗試移動到列表字符串數組的價值,但我有這個錯誤嘗試從空數組

顯示java.lang.NullPointerException:嘗試從空數組

此閱讀是

public class MainActivity extends Activity { 

    private GridView gridView; 
    private GridviewAdapter gridAdapter; 
    ArrayList<Integer> list = new ArrayList<Integer>(); 

    private static List<Integer> randomNumber; 
    private int endRange; 
    String[] strarray1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 

     StrictMode.setThreadPolicy(policy); 


     //Obtenemos la referencia de la vista 
     gridView = (GridView) findViewById(R.id.gridView); 


     //********************************************** 

    // getUrl("http://imgwslili.gtcine.com/index.html", "0"); 

     endRange = getUrl("http://imgwslili.gtcine.com/value.txt"); 


     //******************************************************** 

     randomNumber = new ArrayList<Integer>(endRange); 

     System.out.println("IMPRIMIR0 " + endRange); 

     endRange = endRange-100; 
    int j=100; 
     for (int i = 0; i <=endRange; i++) { 
      randomNumber.add(j); 
j++; 
     // System.out.println("IMPRIMIR " + randomNumber.get(i)); 
     } 
     System.out.println("IMPRIMIR1 " + randomNumber.size()); 



     Collections.shuffle(randomNumber); 
     // System.out.println("IMPRIMIR2 " + randomNumber.get(5)); 

     strarray1 = getitem(); 


     //Construimos el adaptador pasando como 
     //segundo parametro el array de imagenes 
     gridAdapter = new GridviewAdapter(MainActivity.this, getitem()); 

     //Especificamos el adaptador 
     gridView.setAdapter(gridAdapter); 

     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       System.out.println("ENVIAR " + position); 
       Toast.makeText(getBaseContext(), "Salida pos: "+position,Toast.LENGTH_LONG).show(); 
       Intent intent = new Intent(MainActivity.this, ActivityTwo.class); 
       intent.putExtra("position", position); 
       startActivity(intent); 
      } 
     }); 



    } 



    public String[] getitem(){ 
     List<String> strlist = new ArrayList<String>(); 

     // endRange= endRange-100; 
     int j = 100; 
     for(int i= 0; i<endRange; i++){ 

       strlist.add("http://imgwslili.gtcine.com/img" + randomNumber.get(i) + ".jpg"); 
       System.out.println("URL " + "http://imgwslili.gtcine.com/img" + randomNumber.get(i) + ".jpg"); 


     } 

     // System.out.println("URL " + "http://img.gtcine.com/img" + randomNumber.get(j) + ".jpg"); 
     String[] strarray = new String[strlist.size()+1]; 
     strlist.toArray(strarray); 
     System.out.println("IMPRIME " + strarray.toString()); 
     return strarray; // 
    } 


    public String getpost(int post){ 

     String hola[] = strarray1; 
     System.out.print(hola); 
     System.out.println("GetPost " + post); 
     return strarray1[post]; 
    } 

我失去了我的新手在android系統我想告訴從互聯網上的imagen畫質,做工精細,但代碼時,我選擇出此錯誤畫廊imagen畫質:顯示java.lang.NullPointerException:嘗試從零陣列讀取

+0

它看起來像hola []爲空。你在哪裏初始化strarray1?你不是故意做String hola [] = getItem(); ? – denker

+0

@ Heisenberg06我看不到strarray1被填充到getPost()方法中......你能解釋一下嗎? – vijay

+0

我將添加更多代碼全班 – Heisenberg06

回答

0

使這一變化在你的代碼,它可能工作:

strarray = strlist.toArray(strarray); 

String hola[] = strarray1.clone(); 
+0

沒有人:/顯示此錯誤java.lang.NullPointerException:嘗試調用虛擬方法'java.lang.Object java.lang.String []。clone()'null對象參考 – Heisenberg06

1

我不知道到底什麼是你想這樣做,但我已經改變了一點代碼來顯示結果,當你發送參數到getpost方法

public static void main(String[] args){ 


     System.out.println("Result: " + getpost(1)); 
    } 



    public static String[] getitem(){ 
     List<String> strlist = new ArrayList<String>(); 

     // endRange= endRange-100; 
     int j = 100; 
     for(int i= 0; i<j; i++){ 

       strlist.add("http://ime.com/img" + i + ".jpg"); 


     } 


     String[] strarray = new String[strlist.size()+1]; 
     strlist.toArray(strarray); 
     System.out.println("IMPRIME " + strarray); 
     return strarray; // 
    } 


    public static String getpost(int post){ 

     String hola[] = getitem(); //HERE I CALL getitem() 
     System.out.print(hola); 
     System.out.println("GetPost " + post); 
     return hola[post]; 
    } 
+0

我可以加你到Skype請:( – Heisenberg06

相關問題