如何检测操作栏"子标题"点击Android Fragment中的事件..?

时间:2015-01-13 05:35:07

标签: android

在我的Android应用中,我想检测操作栏“子标题”点击事件,但我不知道该怎么做。我已成功完成操作栏“标题”点击,如下面的代码---

所示
// Get action bar title ID 
final int abTitleId = getResources().getIdentifier("action_bar_title", "id", "android");    

//Set OnClick event on action bar title
getActivity().findViewById(abTitleId).setOnClickListener(new View.OnClickListener() 
{
    @Override
    public void onClick(View v) 
    {
       // Done      
    }
});

参考上面的代码,我试图检测操作栏“子标题”点击事件如下,但是有一些错误,我得到“子标题ID”为空,它正在抛出空指针异常。

            //Set OnClick event on action bar sub-title
final int abSubTitleId = getResources().getIdentifier("action_bar_sub_title", "id", "android");
            getActivity().findViewById(abSubTitleId).setOnClickListener(new View.OnClickListener() 
            {
                @Override
                public void onClick(View v) 
                {

                }
            });

希望你理解。谢谢..!

2 个答案:

答案 0 :(得分:0)

最好处理这种情况是使用自定义操作栏视图,因此创建一个简单的操作栏布局,其中包含标题textview和subtitle textview,并实现相应的监听器。 :)

    final ViewGroup actionBarLayout = (ViewGroup) getLayoutInflater().inflate(R.layout.action_bar, null);

// Set up your ActionBar
final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(actionBarLayout);

// You customization
final int actionBarColor = getResources().getColor(R.color.action_bar);
actionBar.setBackgroundDrawable(new ColorDrawable(actionBarColor));

final TextView actionBarTitle = (TextView) findViewById(R.id.action_bar_title);
final TextView actionBarSubTitle = (TextView) findViewById(R.id.action_bar_sub_title);

答案 1 :(得分:0)

据我所知,Action Bar字幕不可点击。相反,您可以在那里添加图标并使其可点击。您可以在onOptionsItemSelected()中获取图标的点击事件。