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

4

我创建了一个带工具栏和可滚动列表的活动,为可滚动列表实现了选择选项,在选择完列表项后,我需要在工具栏中更新已选择的项目数。我正在尝试使用以下方法来实现:

    @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项目后,添加额外的ActionBar在工具栏之上,这是屏幕截图http://screencast.com/t/UY2KSs9r


你在哪里遇到问题了?请明确表述。 - Nishant Srivastava
不要膨胀菜单,我认为你应该直接操作工具栏标题。 - Nishant Srivastava
使用工具栏 :) http://developer.android.com/reference/android/widget/Toolbar.html - Nishant Srivastava
清理你的布局,编辑你的消息,这篇文章变得非常混乱。 - piotrek1543
可能是如何更改复制文本时出现的文本选择工具栏颜色?的重复问题。 - DarkLeafyGreen
显示剩余4条评论
2个回答

2
如果你只想更新工具栏中的计数器,你可以直接更新标题。
final ActionBar ab = getSupportActionBar();
if(ab!=null)
    ab.setTitle(stringVariable);

我不确定你还想要做什么,所以暂时先给你我的答案。


2

首先删除默认的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"); 

}

我可以创建带有工具栏和RecyclerView的活动,选择RecyclerView项目后需要更改工具栏。 - sri
你知道当选定项目时会发生什么吗?每当您选择一个项目时,只需将值添加到整数变量中,然后通过调用getSupportActionBar().setTitle(String.valueOf(selectedTotalInt))来更新工具栏标题。 - Nishant Srivastava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接