如何将onClickListener作为方法参数传递

时间:2016-11-29 16:30:40

标签: java android onclicklistener

我在ActionBar(Base)类中有我想在我的片段中调用的方法:

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();    
}

如何在我的方法setOnBackButtonClickListener()中传递onClickListener作为参数?

2 个答案:

答案 0 :(得分:0)

如果我理解你正确,你想在你点击后退按钮时调用方法!! 你可以使用工具栏而不是actionBar,并在toolbar.setNavigationOnClickListener中调用你的方法 在您的情况下,您正在使用ActionBar,那么您可以告诉Android使用工具栏作为ActionBar,如下所示:

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

显示主页按钮

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

。您现在可以在附加到ActionBarActivities的Fragments中使用它,您可以像这样使用它:

((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
   }
});

答案 1 :(得分:0)

我只需要创建OnClickListener的对象,然后将其作为参数传递给setOnBackButtonClickListener方法。