2016-06-25 2 views
0

Я пытаюсь создать простую игру с использованием случайного массива и поместить ее в gridview. Но после щелчка на элементе gridview я не могу создать новый массив, потому что следующий случайный массив должен находиться внутри OnItemClickListener - не может установить адаптер как внешний метод OnCreate. Мне нужен anysolution от вас, ребята. Вот мой код:Создайте случайный массив для установки в Gridview после использования OnItemClickListener

for (int j=1;j<25;){ 
     int random=((int)(Math.random()*25))+1; 
     if (!list.contains(random)){ 
      list.add (random); 
      j++; 

     } 
    } 
    list.add(a); 

    gridView = (GridView) findViewById(R.id.gridView); 
    final ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this, 
      android.R.layout.simple_list_item_1,list); 

    gridView.setAdapter(adapter); 

    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v, 
           int position, long id) { 
      gridView=(GridView)findViewById(R.id.gridView); 
      Integer values=Integer.parseInt(gridView.getItemAtPosition(position).toString()); 
      y.setText(String.valueOf(value)); 
      if (a==values){ 

       for (int j=1;j<25;){ 
        int random=((int)(Math.random()*25))+1; 
        if (!list.contains(random)){ 
         list.add (random); 
         j++; 
        } 
       } 
       list.add(a); 



       Collections.shuffle(list); 
       adapter.notifyDataSetChanged(); 
       a=a+r.nextInt(11); 
       x.setText(String.valueOf(a)); 
       System.out.println(a); 

       Toast.makeText(getApplicationContext(), 
         "OK", Toast.LENGTH_SHORT).show(); 
      }else{ 
       Toast.makeText(getApplicationContext(), 
         "Failed", Toast.LENGTH_SHORT).show(); 
      } 

     } 
    }); 

} 

ответ

0

Почему бы вам не создать рандомизированные данные вне слушателя и сохранить его как окончательное поле класса? Затем вы можете просто получить доступ к нему изнутри прослушивателя каждый раз, когда его щелкают.