내 애플리케이션보기에서 OnClick
동작을 구현하려고합니다. 내가 안드로이드를 처음 접했을 때 이것을 전달하는 것을 알고 싶다면 View.OnClickListener
인터페이스가 더 나은 선택이거나 setOnclickListener
위젯에 익명 클래스를 사용하는 것입니다. 내 생각에 나는 이것을 통과하면 모든 활동과 그 자식 요소가 특정 위젯에 영향을 미치므로 더 많은 메모리를 소비 할 수 있으므로 함께 갈 수있는 최상의 접근 방식 인 메모리 누수를 피할 수있다.setOnclickListener와 Activity가 View.OnClickListener를 구현합니다.
답변
실제로 두 개 이상의 클릭 항목이 있기 때문에 OnClickListener를 구현할 때. 같은 내가 하나의 레이아웃 (10 개) 버튼이와 나는 각각 클릭 리스너를 작성하는 경우 : 우리가 OnClickListener를 구현하고 온 클릭의 모든 클릭 리스너를 쓰는 이유
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
button2setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
그것의 안 좋은 프로그래밍 연습 먹으 렴(). 이므로 나중에 변경하기가 쉽습니다.
다른 경우에는 단일 버튼이 있으면 setOnClickListener()를 사용할 수 있습니다.
이 두 가지의 차이는 지나치지 않습니다. 그것의 모든 안드로이드에서 좋은 코딩 연습에 관한. :)
모두 괜찮습니다.하지만 인터페이스를 구현 한 다음이를 사용하여 전달하는 것이 특정 위젯에 대한 전체 활동 참조를 작성하므로 활동과 관련된 모든 메모리 오버 헤드가 복제 될 수 있습니다. 인터페이스를 익명 클래스로 전달하는 동안 우리는 활동이 아닌 특정 인터페이스를 전달합니다. –
또한 XML을 file.its 쉽게에서
android:onClick = "ButtonOne"
속성을 사용할 수 있습니다!
나는 쉬운 일을 요구하지 않고 있습니다. 메모리 관리라는 또 다른 관점에서 생각하고 있습니다. –
AFAIK 모든 세 가지 접근 방식은 거의 동일한 메모리를 사용합니다. 고려해야 할 사항은 좋은 코딩 방법입니다. 상황에 따라 다릅니다. View.OnClickListener를 구현하고 android : onClick = "ButtonOne"을 사용하는 것이 각 단추에 대해 setOnClickListner를 사용하는 것이 바람직합니다. –
- 1. 버튼 setOnClickListener와 관련된 문제
- 2. onDestroy 동안 뷰에서 View.OnClickListener를 해제해야합니까?
- 3. onKey in activity가 호출되지 않았습니다.
- 4. android : onClick을 설정해야하는 경우 왜 View.OnClickListener를 구현합니까?
- 5. Activity가 누출되었습니다. IntentReceiver android.widget.ViewFlipper
- 6. 구현합니다 상속
- 7. 구현합니다 방법은
- 8. Activity가 AlarmManager를 통해 호출되지 않습니다.
- 9. 기존 프로토콜을 효율적으로 구현합니다.
- 10. 인터페이스 클래스는 Runnable을 구현합니다
- 11. 목록보기에서 빼기를 구현합니다
- 12. XSLT에서 곱슬 따옴표를 구현합니다.
- 13. box2dweb에 경계 수신기를 구현합니다.
- 14. Google지도에서 requestlocationchange를 구현합니다.
- 15. Zobrist 해싱을 올바르게 구현합니다.
- 16. DependencyObject와 INotifyPropertyChanged를 모두 구현합니다.
- 17. 올바르게 백본 비교기를 구현합니다.
- 18. 은 onChildClickListener를 구현합니다.
- 19. xtext는 IResourceValidator를 구현합니다.
- 20. Boost.geometry는 다각형 개념을 구현합니다.
- 21. CRC16을 효율적으로 구현합니다.
- 22. 은 메모리 풀을 구현합니다.
- 23. Python에서 rfind를 구현합니다
- 24. 클래스와 고생하고 구현합니다.
- 25. Swift에서 확인란을 구현합니다.
- 26. Matlab은 가우스 프로세스를 구현합니다
- 27. UIComponent를 TileListItemRenderer로 구현합니다.
- 28. FreeBSD에서 ioctl() 명령을 구현합니다.
- 29. blackberry는 오디오 플레이어를 구현합니다.
- 30. FTP가 안드로이드 문제에서 구현합니다
가장 좋은 방법은 View.OnClickListener를 구현하는 것입니다. 코드의 일부 줄을 줄이고 모든 클릭 이벤트를 한 블록에 유지하기 쉽습니다. – Nas
@Nas 옙 나는 이것을 알고 있지만 메모리 소비에 대해 궁금하다. –
아마도 파일 크기에 따라 약간의 메모리 (공간)가 줄어들지 만, 둘 다 같은 클래스를 참조하며 동일하게 작동하여 같은 양의 메모리 (RAM)를 할당합니다. – Nas