java - 尝试从空数组中读取

标签 java android arrays

当我尝试将列表的值移动到数组字符串时,我有一个代码,但出现此错误

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新手,我想显示来自互联网的图像并且工作正常,但是当我从图库中选择图像时显示此错误:java.lang.NullPointerException:尝试从空数组中读取

最佳答案

我不知道你到底想做什么,但我对代码做了一些更改,以便在你向 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];
    }

关于java - 尝试从空数组中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32708017/

相关文章:

java - SCJP 断言语句

java - 如何创建一个简单的json模板来放心发送 body 数据?

Android new Locale ("en_US") 和 Locale.US 有什么不同?

android - 如果 Parse 云数据服务失败会怎样?

java - Java 中的可见性关键字实际上是方法,就像在 Ruby 中一样吗?

java - GetByteArrayElements 何时返回 null?

java - 如何获取当前时间 09 :04:15 instead of 9:4:15 when using Date?

javascript - 计算具有特定属性值的对象数组中的项目数 (JavaScript)

c++ - 新的数组分配

java - 如何使用变量来指定数组长度?