首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在安卓操作栏标题上设置OnClick Listener

在安卓操作栏标题上设置OnClick Listener
EN

Stack Overflow用户
提问于 2014-07-19 16:02:29
回答 8查看 50.2K关注 0票数 29

我在安卓应用程序上工作,我使用的是ActionBar,所以有一个导航抽屉图标来打开它和ActionBar中的ActionBar标题。我想在ActionBar的标题上设置一个单击侦听器,这样它就可以启动一个新的Activity,并在导航抽屉图标上设置不同的单击侦听器来打开导航抽屉菜单。

我实现了一个点击导航抽屉图标,但当我点击标题的ActionBar标题,然后它会打开导航抽屉菜单。有没有办法在ActionBar的标题上设置不同的点击监听器?

提前谢谢。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-07-19 16:33:32

尝试将此代码添加到onCreate()函数下。这将获取操作栏标题所在的资源,并为其分配可用于添加OnClickListener的id。让我知道它进行得怎么样!

代码语言:javascript
复制
final int abTitleId = getResources().getIdentifier("action_bar_title", "id", "android");
findViewById(abTitleId).setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
    //Do something
    }
});
票数 24
EN

Stack Overflow用户

发布于 2015-03-09 11:04:13

如果您使用的是Toolbar with support v7:21。查看以下代码:

代码语言:javascript
复制
Field titleField = Toolbar.class.getDeclaredField("mTitleTextView");
        titleField.setAccessible(true);
        TextView barTitleView = (TextView) titleField.get(mToolbar);
        barTitleView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });
票数 8
EN

Stack Overflow用户

发布于 2015-05-06 20:54:50

你可以使用Toolbar很容易做到这一点。在布局xml文件中定义工具栏,如下所示:

代码语言:javascript
复制
 <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    android:background="?colorPrimary"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <TextView
        android:id="@+id/toolbarTitle"
        style="@style/TextAppearance.Widget.AppCompat.Toolbar.Title"
        android:background="?attr/selectableItemBackground"
        android:layout_width="wrap_content"
        android:gravity="center_vertical"
        android:layout_height="match_parent" />
</android.support.v7.widget.Toolbar>

然后,您可以使用以下代码在Activity中设置侦听器:

代码语言:javascript
复制
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));

TextView toolbarTitle= (TextView) findViewById(R.id.toolbarTitle);
toolbarTitle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // DO SOMETHING HERE
        }
    });
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24838155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档