如何在android活动中选择列表项后更改工具栏布局

时间:2015-12-22 07:11:04

标签: android android-actionbar android-toolbar

我创建了一个带有toolbar和recyclerview的活动,为recyclerview实现了选择选项,选择列表项后我需要更新工具栏中的所选项目数。我正在尝试通过使用

来实现这一点
    @Override
public boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
    // Inflate a menu resource providing context menu items
    MenuInflater inflater = actionMode.getMenuInflater();
    inflater.inflate(R.menu.menu_cab_recyclerviewdemoactivity, menu);

    return true;
}

现在选择了Recyclerview项目,在工具栏上方添加了额外的操作栏,这里是屏幕http://screencast.com/t/UY2KSs9r

2 个答案:

答案 0 :(得分:1)

如果您只想更新工具栏中的计数,则只需更新标题

即可
final ActionBar ab = getSupportActionBar();
if(ab!=null)
    ab.setTitle(stringVariable);

我不确定你还想做什么,所以现在这是我的答案。

答案 1 :(得分:1)

首先删除默认的ActionBar

编辑你的style.xml

 <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme colors here. -->
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>

    <!-- Disables the Default ActionBar -->
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

然后在main_activity_layout.xml中,删除根 RelativeLayout 标记上的任何填充。

下一步

 <android.support.v7.widget.Toolbar
        android:id="@+id/mainToolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageButton
            android:id="@+id/main_settings_btn"
            android:background="@drawable/ic_settings"
            android:backgroundTint="@color/accent"
            android:contentDescription="Copy"/>

        <ImageButton
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_gravity="right"
            android:layout_marginRight="10dp"
            android:background="@drawable/ic_points"
            android:backgroundTint="@color/accent"
            android:contentDescription="Paste"/>

    </android.support.v7.widget.Toolbar>
    ...... <your_code_here_possibly_recyclerview>

这解决了您额外的工具栏问题。

下一步

private Toolbar toolbar;                              // Declaring the Toolbar Object


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    toolbar = (Toolbar) findViewById(R.id.mainToolbar); // Attaching the layout to the toolbar object
    setSupportActionBar(toolbar);                   // Setting toolbar as the ActionBar with setSupportActionBar() call

   // Now whenever you want to update the title just change text in below 
   getSupportActionBar().setTitle("My title"); 

}