2012-07-09 6 views
0

버튼을 클릭 할 때 이미지를 변경하려고합니다. 지금 학습 곡선에서 왜 실패하는지 식별하는 데 어려움이 있습니다.버튼 클릭시 이미지 뷰 변경하기 android

여기 내 코드입니다 :

public class Main extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    Button changeMebtn = (Button) findViewById(R.id.changeMe); 

    changeMebtn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      ImageView image = (ImageView) findViewById(R.drawable.amsterdam); 
      image.setImageResource(R.drawable.lima); 
     } 
    }); 


} 

}

XML : 내가 버튼을 클릭하면 내가 현재 일반 오류를 받고 있어요

<ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/amsterdam" /> 

    <Button 
     android:id="@+id/changeMe" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Change Me" 
     android:layout_gravity="center"/> 

.

누군가 내가 여기서 잘못하고있는 것을 말해 줄 수 있습니까?

감사합니다.

답변

11

사용

ImageView image = (ImageView) findViewById(R.id.imageView1); 
      image.setImageResource(R.drawable.lima); 

대신

ImageView image = (ImageView) findViewById(R.drawable.amsterdam); 
      image.setImageResource(R.drawable.lima); 

이미지 ID가 XML을하지 암스테르담

와 두 번째 포인트 사용 imageView1 때문에

R.id.imageView1 대신 R.drawable.amsterdam

+0

@LalitPoptani : 선생님, 이미'ImageView' 대신'findViewById '에 drawable id를 전달했기 때문에 현재 코드에서 문제가 무엇인지 나타내는 지워진 코드 다음에 두 줄을 언급했습니다. id는 그가 Drawable '를'ImageView'로 보냅니다. –

+0

고마워요. 나는 'imageView1'을 사용하지 않음으로써 무언가를 놓쳤다는 것을 알았다. 방금 내부화하지 못했습니다 ... – greenpool

+0

이 솔루션은 R.drawable.amsterdam의 단일 인스턴스가있는 응용 프로그램에만 적용됩니다. – Kramer

4

사용 :

ImageView image = (ImageView) findViewById(R.id.imageView1); 
관련 문제