2016-08-01 2 views
1

동일한 활동을 시작하는 버튼이 있습니다. 활동을 시작한 후 배열에서 다음 이미지를 얻으려면 어떻게합니까? ? 여기 활동 시작 후 새 이미지를 얻는 방법 (배열에서)?

Button btnNext = (Button) dialog.findViewById(R.id.btnNext); btnNext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); finish(); startActivity(getIntent()); } }); 

버튼

의 코드는 여기에 정확하게 활동마다 시간을 다시 시작하려는 이유는, 당신은 단지 활동을 다시 시작하지 않고 버튼 클릭에 자원을 변경할 수 있습니다 배열

int[] array_images = { 
      R.drawable.apple, 
      R.drawable.p_dolor 
    }; 
+0

이미지가있는 배열은 어디에 있습니까? – Sree

+0

@Sree가 방금 추가되었으므로 기본 이미지 배열 –

+0

'finish(); '를 호출하여 작업을 완전히 다시 시작해야합니까? 화면을 회전 시키면 Activity가 정상적인 수명주기의 일부로 재생성됩니다. 버튼과 로직을 사용하여 이미지를 순환시키고, 배열의 위치 (표시 할 이미지)를 onSaveInstanceState에 저장하고 해당 이미지를 onCreate에 복원 할 수 있습니까? –

답변

1

입니다.

int index = 0; 
int[] imgRes = {R.id.image1, R.id.image2, R.id.image3, R.id.image4}; 
    Button btnNext = (Button) dialog.findViewById(R.id.btnNext); 
btnNext.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        dialog.dismiss(); 
        updateImage(); 
       } 

      }); 
private void updateImage(){ 
    index++; 
    if(index >= imgRes.lenght) 
     index = 0; 
    ImageView imageView = findViewById(R.id.myImage); 
    imageView.setResource(imgRes[index]) 
} 

그것을 :)

+0

감사합니다. 그러나 updateImage()를 결합하는 방법은 없습니다. 및 startActivity (getIntent()); –

+0

네, 그렇게 할 수는 있지만 다시 시작하는 것은 좋은 코드 관행이 아닙니다. 활동을 다시 시작하면 추가 메모리를 사용하는 활동의 또 다른 인스턴스가 만들어 지므로 사용자 경험도 좋지 않습니다. 활동을 다시 시작하지 않고 모든 것을 할 수 있습니다. 다시 시작하지 않고 수행하는 것이 더 좋습니다 :) – Neo

0

당신은 당신이 좋아 아래 그것을 위해 배열 인덱싱을 관리 할 필요가 아래 하나의 시도 할 수 있습니다 도움이 될 것입니다 희망 : - - 예를 들어

int index = 0; 
int[] array_images = {R.id.image1, R.id.image2, R.id.image3, R.id.image4}; 
Button btnNext = (Button) dialog.findViewById(R.id.btnNext); 
ImageView imageView = (ImageView)findViewById(R.id.myImage); 
        setImageRes(); 
btnNext.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        dialog.dismiss(); 
        setImageRes(); 
       } 

      }); 


private void setImageRes(){ 
     index++; 
     if(index < array_images.lenght){ 
      imageView.setResource(array_images[index]) 
     } 
} 
0

당신은이 작업을 수행 할 수 있습니다 :

int index = 0; 
int[] array_images = {R.id.image1, R.id.image2}; 
Button btnNext = (Button) dialog.findViewById(R.id.btnNext); 
ImageView imageView = (ImageView)findViewById(R.id.myImage); 
setImageRes(getIntent().getIntExtra()); 

btnNext.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       index = getIntent().getIntExtra(); 
       dialog.dismiss(); 
       finish(); 
        Intent intent = new Intent(this,CallActivity.class); 
        intent.putExtra("position",index++); 
      } 
     }); 

private void setImageRes(int position){ 
     imageView.setResource(array_images[position]) 
    } 
+0

CallActivity? CallActivity 대신 사용하는 활동의 이름을 하나의 활동으로 유지합니다. –

+0

. 동일한 활동으로 방향이 바뀌고 있음을 나타냅니다. – abissa