如何检测自定义操作栏的点击?

Pre*_*thi 1 android custom-controls actionbarsherlock android-actionbar

我有一个要求,我有一个图标(不是应用程序图标)需要在操作栏的左侧.

我尝试创建自定义视图,但我不知道如何检测该图标上的点击.

想到的其他选项是使用setIcon(mycustomicon)并处理onOptionSelected方法的click事件; 但是这个方法也没有被调用而且不起作用.

我正在使用actionbar sherlockholmes库.是因为那个吗?

请帮助我,因为我坚持了好几天.

提前致谢

Rak*_*i s 6

这可能对你有所帮助

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
            getSupportActionBar().setCustomView(R.layout.actionbar);
            /***THis will be used to creatre a custom action bar click listener **/
            View v =getSupportActionBar().getCustomView();
           /*** sample click is a id of the view i have used in action bar view ***/
            ((Button)v.findViewById(R.id.smaple_click)).setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    /*****Add your click function here******/

                }
            });
Run Code Online (Sandbox Code Playgroud)


Tam*_*sák 5

如果要添加自定义视图getSupportActionBar().setCustomView(resId),则需要通过调用返回新创建的View对象getSupportActionBar().getCustomView().然后,您可以setOnClickListener像通常使用其他视图一样设置单击处理程序.

另一方面,如果您正在使用setCustomView的一个重载,它将View作为第一个参数,则可以省略第一步,因为您已经有一个View对象可以使用.

以下是第一种情况的示例:

getSupportActionBar().setCustomView(R.layout.test);
getSupportActionBar().setDisplayShowCustomEnabled(true);

getSupportActionBar().getCustomView().setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View view) {
        // your code here
    }
});
Run Code Online (Sandbox Code Playgroud)