如何在顶部工具栏的购物车图标上添加项目编号?安卓 [英] How to add item number on the cart icon at top toolbar? Android

查看:82
本文介绍了如何在顶部工具栏的购物车图标上添加项目编号?安卓的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看到一些应用程序成功了.所以我很感兴趣如何做.我相信必须有一些技巧.示例:

I saw some apps made it. So I am intersting at how to do it. I believe there must be some trick way to do it. Example:

我在菜单文件中添加了购物车图标. `

I add the cart icon in the menu file. `

<item
    android:id="@+id/action_drawer_search"
    android:orderInCategory="300"
    android:title="Search"
    android:icon="@drawable/ic_search_white_24dp"
    app:showAsAction="ifRoom"
    />
<item
    android:id="@+id/action_drawer_cart"
    android:orderInCategory="200"
    android:title="Cart"
    android:icon="@drawable/ic_shopping_cart_white_24dp"
    app:showAsAction="ifRoom"/>

`

推荐答案

对我有用的示例代码.

1:为徽章菜单项创建一个布局.

1: Create a layout for your badge menu item.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="48dp"
android:layout_height="fill_parent"
android:layout_gravity="right" >

<!-- Menu Item Image -->
<ImageView
    android:layout_width="48dp"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:src="@drawable/bkg_actionbar_notify_off" />

<!-- Badge Count -->    
<TextView
    android:id="@+id/actionbar_notifcation_textview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:padding="@dimen/padding_small"
    android:text="99"
    android:textColor="@color/holo_orange_dark" />

</RelativeLayout>

2:在res/menu中创建一个菜单项,然后将actionLayout设置为您的布局

2: Create a menu item in res/menu and set the actionLayout to your layout

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
    android:id="@+id/badge"
    android:actionLayout="@layout/actionbar_badge_layout"
    android:icon="@drawable/icn_menu_posts"
    android:showAsAction="always">
</item>
</menu>

3:然后在您的活动或片段的onCreateOptionsMenu中,您可以执行以下操作...

3: Then in onCreateOptionsMenu of your activity or fragment you can do something like this...

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.badge, menu);
RelativeLayout badgeLayout = (RelativeLayout)    menu.findItem(R.id.badge).getActionView();
TextView tv = (TextView) badgeLayout.findViewById(R.id.actionbar_notifcation_textview);
tv.setText("12");
}

注意:如果以后要更改徽章计数,则可以存储对传递给onCreateOptionsMenu的Menu对象的引用,并使用相同的代码来获取所需的视图并设置一个值.

Note: If you wanted to change the badge count later on, you could store a reference to the Menu object passed to onCreateOptionsMenu and use the same code to get the required view and set a value.

=== ApCompat警告========================================== ========

=== ApCompat Warning ==================================================

如果使用AppCompatActivity,则必须在onCreateOptionsMenu上设置actionView

If using the AppCompatActivity then you must set the actionView in teh onCreateOptionsMenu

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.main_menu, menu);
  MenuItem item = menu.findItem(R.id.badge);
  MenuItemCompat.setActionView(item, R.layout.actionbar_badge_layout);
  RelativeLayout notifCount = (RelativeLayout)   MenuItemCompat.getActionView(item);

TextView tv = (TextView) notifCount.findViewById(R.id.actionbar_notifcation_textview);
tv.setText("12");

  return super.onCreateOptionsMenu(menu);

要添加onClickListener ,请覆盖onOptionsItemSelected函数.

To add onClickListener override onOptionsItemSelected function.

@Override
public boolean onOptionsItemSelected(MenuItem item) {


    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.your_badge_id_here) {

        //do whatever you want to do here.
        return true;
    }

    return super.onOptionsItemSelected(item);
}

这篇关于如何在顶部工具栏的购物车图标上添加项目编号?安卓的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆