我在安卓应用程序上工作,我使用的是ActionBar,所以有一个导航抽屉图标来打开它和ActionBar中的ActionBar标题。我想在ActionBar的标题上设置一个单击侦听器,这样它就可以启动一个新的Activity,并在导航抽屉图标上设置不同的单击侦听器来打开导航抽屉菜单。
我实现了一个点击导航抽屉图标,但当我点击标题的ActionBar标题,然后它会打开导航抽屉菜单。有没有办法在ActionBar的标题上设置不同的点击监听器?
提前谢谢。
发布于 2014-07-19 16:33:32
尝试将此代码添加到onCreate()函数下。这将获取操作栏标题所在的资源,并为其分配可用于添加OnClickListener的id。让我知道它进行得怎么样!
final int abTitleId = getResources().getIdentifier("action_bar_title", "id", "android");
findViewById(abTitleId).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Do something
}
});发布于 2015-03-09 11:04:13
如果您使用的是Toolbar with support v7:21。查看以下代码:
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
}
});发布于 2015-05-06 20:54:50
你可以使用Toolbar很容易做到这一点。在布局xml文件中定义工具栏,如下所示:
<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中设置侦听器:
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
}
});https://stackoverflow.com/questions/24838155
复制相似问题