2013-08-23 2 views
-1

xml 레이아웃 내에 ImageView가 있습니다. ImageView에는 onClick 메서드가 있습니다. 메서드 호출 내에서 onOptionsItemSelected 시뮬레이션

android:onClick="onHomeClicked" 

사용자가 내 이미지를 클릭

, 내가 원하는 활동을 내부에 차례로 전화 onOptionsItemSelected 그. 내가 어떻게 그럴 수 있니?

다음 코드는 homeMenuItem에 null을 제공합니다

MenuItem homeMenuItem; 

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    homeMenuItem = menu.findItem(android.R.id.home); 
    super.onPrepareOptionsMenu(menu); 
    return true; 
} 

public void onHomeClicked(View view) { 
    onOptionsItemSelected(homeMenuItem); 
} 

답변

1

당신이 어떤 MenuItem, onOptionsItemSelected()가 (여러 옵션이 있습니다 가정) 실패 포함됩니다 어떤 논리.

공유 코드가 필요하므로 해당 논리 부분을 자체 메서드로 이동 한 다음 해당 메서드를 onHomeClicked()onOptionsItemSelected()에서 호출하십시오.

private void mySharedMethod(){ 
//implementation 
} 

public void onHomeClicked (View v){ 
    mySharedMethod(); 
} 

public boolean onOptionsItemSelected (MenuItem item){ 
    switch (item.getItemId()){ 
    case android.R.id.home: 
     mySharedMethod(); 
     return true; 
    default: 
     return super.onOptionsItemSelected (item); 
    } 
} 
0

가능한 당신은 방법을 선언하고 onOptionsItemSelected에서와 onHomeClicked

onOptionsItemSelected(MenuItem item){ 
     switch(item.getItemId()) { 
     case R.id.btn: 
      youNewMethod(); 
     break; 
     } 
    } 

    public void onHomeClicked() { 
     youNewMethod(); 
    } 

    private void youNewMethod(){ 
     // write your code here 
    } 
에서 호출해야