2017-01-31 7 views
0

クリックするたびにランダムな画像を表示するボタンを作成しました。ただし: - 画像を表示するのが非常に遅い - 新しいランダム画像を表示するためにボタンで2回クリックする必要がある場合がありますAndroid App:ランダムな画像を表示するボタンをクリックするとJavaクラッシュが発生する

なぜですか?その後、私は2枚の画像...

なぜを表示した後、私の引き出し可能となりましたアプリのクラッシュに複数の画像を

を追加していますか?ここで

は、Javaのコードです - すべてが明確であり、あなたが私に手を与えることができます

パブリッククラスnextActivityあなたが注入活動{

int[] cards = {R.drawable.image1, 
     R.drawable.image2, 
     R.drawable.image3, 
     R.drawable.image4, 
     R.drawable.image5, 
     ... 
     R.drawable.image32, 
     R.drawable.image33}; 

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

    // initializing the image view 
    ImageView m_imgRandom = (ImageView) findViewById(R.id.imgRandom); 

    // choosing a random number from 0 to 33 
    int n = new Random().nextInt(33); 

    // choosing the random image from cards array using the random number 
    m_imgRandom.setImageResource(cards[n]); 




    Button myButtonRoll = (Button) findViewById(R.id.buttonRoll); 
    myButtonRoll.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Log.i("openclass", "yay it works!"); 

      ImageView myRollAgain = (ImageView) findViewById(R.id.imgRandom); 

      // choosing a random number from 0 to 33 
      int n = new Random().nextInt(33); 

      // choosing the random image from cards array using the random number 
      myRollAgain.setImageResource(cards[n]); 
     } 

    }); 

} 

} `

+0

stacktraceを投稿し、おそらくレイアウトxmlを投稿します。これはAndroidStudioでFile> Invalidate cachesで解決できる問題かもしれません。 – Haem

答えて

0
ImageView m_imgRandom = (ImageView) findViewById(R.id.imgRandom); 
ImageView myRollAgain = (ImageView) findViewById(R.id.imgRandom); 

を拡張願っています同じビューを2回、あなたはすでにm_imgRandomに入れて、あなたのonCLickの中にもう一度注入しないでください。ちょうど同じように使ってください:

m_imgRandom.setImageResource(cards[n]); 

もちろん他の画像であれば他のIDを渡してください。

+0

ありがとう!それは問題の一部であったに違いない。さて、それは配列のより多くの画像を表示しますが、時々まだクラッシュします。特定の画像のサイズが原因である可能性がありますか? – Astrid

関連する問題