2016-11-29 95 views
0

我在動作條(基本)類的方法,我想我的片段內撥打:如何通過onClickListener作爲方法的參數

public void setOnBackButtonClickListener(OnClickListener onBackButtonClickListener) { 
    this.onBackButtonClickListener = onBackButtonClickListener; 
} 

我使用ButterKnife,我想打電話給我的片段內部的方法:

@Bind(R.id.action_bar) ActionBar actionBar; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setRetainInstance(true); 

    actionBar.setOnBackButtonClickListener();  
} 

如何將onClickListener作爲參數傳遞給我的方法setOnBackButtonClickListener()?

回答

0

如果我正確理解了你,當你點擊後退按鈕時你想調用方法! 你可以使用工具欄,而不是動作條,並調用內部toolbar.setNavigationOnClickListener 和你的情況,您使用的是動作條的方法,那麼你可以告訴的Android使用的工具欄的動作條像這樣:

Toolbar toolbar = (Toolbar) findViewById(R.id.mtoolbar); 
setSupportActionBar(toolbar); 

並顯示首頁按鈕到

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
getSupportActionBar().setDisplayShowHomeEnabled(true); 

。您現在可以使用在附加到ActionBarActivities片段,你可以使用它像這樣:

((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true); 

,如果你想定製後退箭頭上的工具欄:

mActionBar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_action_back)); 

現在你可以打電話給你的梅索德:

mActionBar.setNavigationOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     //What to do on back clicked 
    } 
}); 
0

我只需要創建OnClickListener的對象,然後將它作爲參數傳遞給setOnBackButtonClickListener方法。