질문 1 : 안타깝게도 당신이 가장 직관적이라고 말하는 것은 안드로이드에서 가장 적게 사용되는 것입니다. 이해했듯이 UI (XML)와 계산 기능 (Java 클래스 파일)을 분리해야합니다. 또한 더 쉽게 디버깅 할 수 있습니다. 실제로 이런 식으로 읽고 Android imo에 대해 생각하는 것이 훨씬 쉽습니다.
질문 2 : 주로 사용되는 두 가지는 # 2와 # 3이라고 생각합니다. 예를 들어 Button clickButton을 사용하겠습니다.
2
익명 클래스의 형태입니다.
Button clickButton = (Button) findViewById(R.id.clickButton);
clickButton.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
***Do what you want with the click here***
}
});
이것은 findViewById로 버튼 변수가 설정된 바로 옆에 onClick 메서드가 있기 때문에 제가 가장 좋아하는 것입니다. 이 clickButton Button View를 다루는 모든 것이 여기에 있다는 것이 매우 깔끔하고 깔끔해 보입니다.
내 동료가 말한 단점은 onclick 리스너가 필요한 뷰가 많다는 것입니다. onCreate의 길이가 매우 길다는 것을 알 수 있습니다. 그래서 그가 사용하는 것을 좋아하는 이유 :
삼
5 개의 clickButton이 있다고 가정 해 보겠습니다.
Activity / Fragment가 OnClickListener를 구현하는지 확인하십시오.
// in OnCreate
Button mClickButton1 = (Button)findViewById(R.id.clickButton1);
mClickButton1.setOnClickListener(this);
Button mClickButton2 = (Button)findViewById(R.id.clickButton2);
mClickButton2.setOnClickListener(this);
Button mClickButton3 = (Button)findViewById(R.id.clickButton3);
mClickButton3.setOnClickListener(this);
Button mClickButton4 = (Button)findViewById(R.id.clickButton4);
mClickButton4.setOnClickListener(this);
Button mClickButton5 = (Button)findViewById(R.id.clickButton5);
mClickButton5.setOnClickListener(this);
// somewhere else in your code
public void onClick(View v) {
switch (v.getId()) {
case R.id.clickButton1: {
// do something for button 1 click
break;
}
case R.id.clickButton2: {
// do something for button 2 click
break;
}
//.... etc
}
}
내 동료가 설명하는이 방법은 모든 onClick 계산이 onCreate 메소드를 복잡하게하지 않고 한곳에서 처리되므로 그의 눈에는 깔끔합니다. 그러나 내가 보는 단점은 다음과 같습니다.
- 자신을 바라보고,
- onClick 메서드에서 사용하는 onCreate에있을 수있는 다른 개체는 필드로 만들어야합니다.
더 많은 정보를 원하시면 알려주세요. 꽤 긴 질문이기 때문에 귀하의 질문에 완전히 대답하지 않았습니다. 그리고 사이트를 찾으면 답을 넓힐 것입니다. 지금은 경험을 제공하고 있습니다.