2010-12-31 5 views

답변

3

개인적으로는 OnClickListener을 구현하고 정의하는 것을 정의하는 것이 훨씬 좋습니다. 주된 이유는 다른 사람들이 코드 작동 방식을 더 쉽게 이해할 수 있기 때문입니다.

Android 앱의 코드를 읽을 때 .java 파일 (90 % 시간)을 읽고 어떻게 작동하는지 이해합니다. 앱이 실제로 어떻게 작동하는지 또는 그 목적이 무엇인지 알려주지 않는 대부분의 XML 레이아웃을 무시할 것입니다.

따라서 속성을 사용하면 다른 사람 (자신도)이 XML 레이아웃과 Java 소스를보고 앱의 흐름과 의도를 이해하게됩니다. 좋지 않습니다.

가독성 문제입니다. 기술적으로 말하면 성능 차이가 없어야합니다.

+3

내가 명명 규칙이 그 대부분을 극복 할 수 있다고 생각합니다. 'buttonFrozz_onClick (View)'라는 메서드가 보이고 어딘가에'buttonFrozz'가있는 경우이 두 메서드를 연결하는 데 아무런 문제가 없습니다. 더 선언적이고 덜 필수적입니다. –

+0

그래 ... 그게 좋은 지적이야. 그러나, 예를 들어 C#에서 온 경우 유용합니다. 그러나 자바 토지에서, 그리고 특히 안드로이드 토지에서, 당신은 그 규칙을 볼 수 없습니다 (나는 안드로이드 코어가 쓰여지는 방식에 대해 이야기하고 있습니다). – Cristian

+3

'android : onClick'은 코드가 적다는 것 외에도 큰 장점이 있습니다. 레이아웃 리소스의 일부입니다. 자원은 장치의 현재 구성에 따라 런타임에 선택됩니다. UI의 일부분은 장치가 가로/세로 모드인지, 화면 크기가 다른지 등에 따라 동일한 레이아웃의 다른 변형을 사용할 수 있습니다. 이와 같은 상황에서는 각 요소의 onClick 속성을 사용하여 와이어 링 할 수 있습니다 런타임에 어떤 요소가 존재하는지 확인하기 위해 많은 코드가 아닌 적절하게 작동합니다. – adamp

3

android를 사용하는 다음 링크에서 더 잘 설명됩니다. onClick은 onClickListener보다 낫습니다. 다른 사람에게는 이해하기 어렵지만 여러 장점이 있습니다. 오히려 findViewById를 호출 스위치 문과의 무리를하는 것보다 자바 코드를 살펴보다 깨끗하고 나에게 만들기 때문에 온 클릭 :
http://android-developers.blogspot.com/2009/10/ui-framework-changes-in-android-16.html

+0

링크를 사용하는 좋은 이유가 있습니다. – schwiz

+0

지금 확인하십시오. 그것은 가고있다. – Vivek

0

내가 안드로이드를 사용하는 것을 선호합니다. 그러나 android : onClick 함수를 구현하는 것을 잊어 버린 경우에는 뷰를 터치하면 forceclose가 발생합니다.

1

XML에서 onClick을 사용하면 디자이너와 UI 담당자가 코드에 입력하는 것이 더 쉬워 져 XML로 알고있는 프로그래머가 "쉽게"사용할 수 있습니다.

0

minSdkVersion이 4 (1.6) 이상인 경우 android : onClick을 사용하십시오. 코드를보다 깨끗하게 유지하고 읽기 쉽습니다. minSdkVersion이 4 미만 (예 : 3 = 1.5) 인 경우 이 아닌 경우은 무시되므로 onClick 속성을 사용합니다.

onClick 속성은 리플렉션을 사용하여보기에 설정된 OnClickListener를 만들고 리플렉션을 사용하여 메소드를 호출합니다. 대다수의 앱은 문제가되지 않지만 프로세서 집약적 인 앱을 고려해 볼 가치가 있습니다.

-2

onclick 이벤트 (HTML/ASP)에 대한이 설명이 어떻게 든 Android 월드에 적용됩니까? 는 XML의 onclick 속성을 사용

http://spicr.net/jnit/?p=13

0

훨씬 정돈이다. 그러나 이미 지적했듯이 onClick이 선언 된 위치를 표시하는 가시성이 부족합니다. 나는 onclicks 선언 된 XML의 가시성을 향상시키는 주석을 만들었으므로 코드를 자세히 살펴볼 때 어떤 일이 벌어지고 있는지 더 잘 이해할 수 있습니다.

은 여기를 체크 아웃 :

http://blog.blundell-apps.com/using-annotations-for-android-xml-onclick-visibility/

예 :

@FromXML 
public void onSomeXmlButtonClick(View button){ 

} 
관련 문제