У меня есть код, когда я пытаюсь переместить значение списка в массив String, но эта ошибкаПопытка чтения из пустого массива
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: попытка чтение из нулевого массива
похоже Hola [] равна нулю. Где вы инициализировали strarray1? Разве вы не хотели делать String hola [] = getItem(); ? – denker
@ Heisenberg06 Я не вижу, как strarray1 заполняется методом getPost() ... не могли бы вы объяснить? – vijay
Я добавлю еще код полного класса – Heisenberg06