2016-07-05 2 views
0

나는 안드로이드를 처음 접했고 Java에 경험이 거의 없다. 어떤 메소드가 View 객체를 필요로하는지 이해할 수 없습니다.일부 메소드에 View 객체를 전달해야하는 이유는 무엇입니까?

활동에서 버튼을 클릭 할 때 호출되는 메소드입니다.

public void eatCookie(View view) { //Example code inside 

    ImageView previous = (ImageView) findViewById(R.id.android_cookie_image_view); 
    previous.setImageResource(R.drawable.after); 
    TextView previousText = (TextView) findViewById(R.id.status_text_view); 
    previousText.setText("I'm so full!"); 
    } 

이 코드에는 뷰 객체를 사용하는 행이 없습니다. 이 코드는 udacity 튜토리얼에서 가져온 것입니다. 왜 그들은 다음과 같이 "eatCookie"메쏘드를 만들지 못했을까요?

public void eatCookie() {.....} 
+0

나는 이것이 올바른 설명이다 모르겠지만 [이]를 선택 (http://terokarvinen.com/2011/simple-button-for-android-xml-onclick-public-method). 보기의 onClick 속성을 찾을 수있는 레이아웃 파일을 확인해야 할 수도 있습니다. – Raghavendra

+1

[왜이 유형의보기의 객체를이 메소드에 전달해야합니까?] (http://stackoverflow.com/questions/21618368/why-do-you-need-to-pass-an-object- of-type-view-to-this-method) –

답변

0

이 경우 객체보기는 참으로 쓸모가 없습니다. - 나는 그들이 나중에이 이용 할 것으로 예상 나는 몇 Udacity의 과정을 이수했다

public void eatCookie(View view) { //Example code inside 
    ImageView previous = (ImageView) view.findViewById(R.id.android_cookie_image_view); 
    previous.setImageResource(R.drawable.after); 
    TextView previousText = (TextView) view.findViewById(R.id.status_text_view); 
    previousText.setText("I'm so full!"); 
} 
1

:

그러나 당신이 팽창 레이아웃보기에서보기를 얻기 위해이 같은 somethnig 할 것 조각에 같은 다른 경우에

객체보기. 실제 시나리오가 아니라면 예상치 못한 구현이 될 수 있습니다. 메소드의 매개 변수는 해당 메소드에서 사용될 것으로 예상됩니다. 내가 너라면 그걸 땀 흘리지 않을거야. 계속해라.

0

사용자 인터페이스의 모든 항목은 Android View 클래스 (정확하게 android.view.View)의 하위 클래스입니다. Android SDK는 사용자 인터페이스를 구성하는 데 사용할 수있는 미리 빌드 된보기 집합을 제공합니다. 일반적인 예제에는 Button, CheckBox, ProgressBar 및 TextView 클래스와 같은 표준 항목이 포함됩니다. 이러한 뷰를 위젯이라고도합니다.

보기는 여러 개의 다른보기 (합성보기라고도 함)로 구성 될 수도 있습니다. 이러한 뷰는 Android ViewGroup 클래스 (android.view.ViewGroup)의 하위 클래스이며 View 자체는 View의 하위 클래스입니다. 이러한보기의 예는 RadioGroup입니다.

관련 문제