2012-12-11 7 views
0

내 안드로이드 응용 프로그램이 최신 플랫폼을 대상으로합니다. 나는 플랫폼에 익숙하지 않고 액션 바에 대해 충돌하는 정보를 읽었다. 내가 네비게이션을 위해 그것을 사용하고 있었던 방법이 있었다.작업 표시 줄 내비게이션

menu.xml

<menu> 
      <item android:id="@+id/action_sort_size" 
        android:icon="@android:drawable/ic_menu_sort_by_size" 
        android:title="@string/action_barabc" 
        android:onClick="abc" /> 
      <item android:id="@+id/action_sort_alpha" 
.... 
내 활동

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
public void abc(MenuItem item) { 
//... 
} 

이 작품에서

하지만, 다시/최대 탐색이 제대로 작동하지 않습니다. 관련이 없지만 여전히 확인하고 싶을 수 있습니다.

그러나 항목을 켜는 here 과 같은 구현도 있습니다.

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.menuitem1: 
     Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT) 
      .show(); 
     break; 
    case R.id.menuitem2: 
.... 
} 

더 나은 접근 방법은 무엇입니까?

답변

0

더 나은 접근 방식은 제 의견으로는 스위치 접근 방식입니다. 이유는 많지 않지만 그 목록을 나열 해 보겠습니다.

  • 코드가 중앙 집중화되어 있습니다. 기본적으로 같은 일을하는 x 개의 메소드가 없습니다. 코드를보다 읽기 쉽게 유지합니다. 그것은 "깨끗한"것입니다. 또한 switch를 사용하여 default 문을 얻습니다. 이렇게하면 엉망이되어 레이아웃의 요소에 대해 대/소문자를 만드는 것을 잊어 버리는 경우 도움이됩니다. xml을 사용하여 중앙 집중식 방법을 사용하려면 onClick에서 동일한 방법을 참조하고 View 매개 변수의 ID를 확인하십시오. 기본적으로 onOptionsItemSelected과 같습니다.
  • API의 일부입니다. 안드로이드 엔지니어는 개발자가 사용하지 않기를 원한다면 API의 일부로 만들지 않았을 것입니다. 그렇습니다. XML은 테크니컬하게 API이지만, XML은 레이아웃과 비주얼을 위해 사용되어야하며, 로직을 위해 사용되어서는 안됩니다.
  • 누구나 사용합니다. 내가 본 모든 자습서와 모든 사람의 코드는이 방법을 사용합니다. 이제는 더 많은 대회가되었습니다.

대개 개인적이지만, 대회 인 것처럼 보이면 모든 사람이 그것을 사용하므로 준수해야합니다. 특히 팀의 일원으로 일하는 경우. 그러한 arbritrary 것들에 대한 다른 코딩 스타일은 피해야합니다.

내비게이션과 관련하여 동일한 코드를 구현해야하기 때문에 뒤로/내비게이션과 관련하여 어떤 방식으로 변경해서는 안됩니다.