2013-08-23 56 views
-1

我有一個ImageView裏面的xml佈局。 ImageView有一個onClick方法。模擬onOptionsItemSelected裏面的方法調用

android:onClick="onHomeClicked" 

當用戶點擊我的形象,我想,要依次調用onOptionsItemSelected活動中。我會怎麼做?

下面的代碼提供空值homeMenuItem

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

可能必須聲明的方法和onOptionsItemSelectedonHomeClicked

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

    public void onHomeClicked() { 
     youNewMethod(); 
    } 

    private void youNewMethod(){ 
     // write your code here 
    } 
叫它