2012-02-22 2 views
0

나는 이클립스에서 안드로이드와 함께 일하고있다. 임의의 이미지 생성기가 작동합니다. 이 순간에 페이지가로드 될 때 사용자가 버튼을 클릭하기 전에 자동으로 ImageView1에로드 된 임의의 이미지가 있습니다. (사용자가 단추를 클릭하면 다른 임의의 이미지가로드됩니다). * 페이지가로드 될 때 사용자가 버튼을 클릭 할 때까지 이미지가 ImageView1에 표시되는 것을 원하지 않습니다. 사용자가 버튼을 클릭 할 때까지 이미지가 자동으로로드되지 않도록 코드를 변경하려면 어떻게해야합니까?랜덤 이미지 생성기 안드로이드

package com.senior.callacab2; 

    import java.util.Random; 
    import android.app.Activity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.widget.ImageView; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.Button; 

    public class Generatedrinks extends Activity implements OnClickListener { 


private int[] mPhotoIds = new int [] { R.drawable.img1, 
     R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5, 
     R.drawable.img6, R.drawable.img7 }; 

private static final Random rgenerator = new Random(); 

private ImageView iv; 

// Makes new images appear after every button click 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.generatedrinks); 

    Integer q = mPhotoIds[rgenerator.nextInt(mPhotoIds.length)]; 
    iv = (ImageView) findViewById(R.id.imageView1); 
    iv.setImageResource(q); 

    View nextButton = findViewById(R.id.button2); 
    nextButton.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch (v.getId()) { 
    case R.id.button2: 

iv.setImageResource(mPhotoIds[rgenerator.nextInt(mPhotoIds.length)]); 
     break; 
    } 

    // Makes button2 invisible after two clicks the first click generates a 
    // random image and the second click makes the button disappear 
    Button generator = (Button) findViewById(R.id.button2); 
    generator.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      Button button = (Button) v; 
      button.setVisibility(View.INVISIBLE); 
     } 
    }); 
    // When this button is pressed it takes the user to the next layout 
    // called Scoreclass.class 

    Button next = (Button) findViewById(R.id.button1); 
    next.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent = new Intent(view.getContext(), Scorecard.class); 
      startActivityForResult(myIntent, 0); 
     } 

    }); 

} 

    } 

답변

1

글쎄, 당신은 당신이 활동을 시작할 때 이미지를로드하지 않는 다음을 클릭하기 전에 이미지를로드 할 활동을하지 않으려면 ...

이 코드를 당신의 onCreate :

Integer q = mPhotoIds[rgenerator.nextInt(mPhotoIds.length)]; 
iv = (ImageView) findViewById(R.id.imageView1); 
iv.setImageResource(q); 

은 첫 번째와 세 번째 라인 (두 번째 여전히 나중에 사용하기 위해 리뷰를 찾을 수 유용)와 활동을 시작할 때 이미지를로드 할 수 없습니다 제거합니다.

+0

감사합니다. 완벽하게 작동했습니다. – eg8842

+0

도와 줘서 기쁩니다. 귀하의 질문에 대한 귀하의 답변이 만족 스러우면,이 답변 옆에있는 체크 표시를 클릭하여 수락 된 답변으로 표시 할 수 있습니다. – kabuko