【问题标题】:How to implement badge using push notification in android如何在android中使用推送通知实现徽章
【发布时间】:2014-09-24 04:33:10
【问题描述】:

我正在用 android 编写一个应用程序。我们将拥有带有多个图标的仪表板,我想在其中一个带有计数器编号的图标上显示徽章。我希望一旦收到通知,诸如计数器编号之类的实现就会在仪表板上更新。我怎样才能在通知中实现它。

这是一笔交易,

我们有一个表格,我们在其中插入来自使用云(即 Google App Engine)的用户的数据。一旦条目被插入到表格推送通知中,应该提示用户和仪表板上的计数器编号将在同一屏幕上更新。 请给我一个例子,以便我可以在我的应用程序中实现它。

谢谢, 普拉尚特。

【问题讨论】:

标签: android android-notifications


【解决方案1】:

您想为 iOS 应用程序应用徽章吗? 如果你想这样做,android 没有直接的方法,因为它不是 android 的行为,但我们仍然可以在三星、索尼和 HTC 等少数制造商的帮助下完成。

了解更多详情android-ios-style-badge-app-icon-for.html

【讨论】:

    【解决方案2】:

    我需要类似的功能,我使用以下代码实现了这一点

    菜单/main.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:yourappname="http://schemas.android.com/apk/res-auto" >
    
        <item
            android:id="@+id/notification"
            android:title="@string/notifications"
            yourappname:actionLayout="@layout/notification_update_count"
            yourappname:showAsAction="always" />
    
    </menu>
    

    布局/notification_update_count.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:paddingRight="10dp">
    
        <!-- Menu Item Image -->
    
        <ImageView
            android:id="@+id/notification_bell"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true" 
            android:clickable="true"
            android:background="@drawable/ic_actionbar_notification" />
    
        <!-- Badge Count -->
    
        <TextView
            android:id="@+id/actionbar_notifcation_textview"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignRight="@id/notification_bell"
            android:layout_alignTop="@id/notification_bell"
            android:background="@drawable/counter_bg"
            android:gravity="center"
            android:textColor="@color/white"
            android:visibility="invisible" />
    
    </RelativeLayout>
    

    src/MainActivity.java:

    public class MainActivity extends ActionBarActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mContext = MainActivity.this;
        }
    
    
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            if (currentPosition != 6 && currentPosition != 7 && currentPosition != 8 && currentPosition != 9) {
                getMenuInflater().inflate(R.menu.main, menu);
                item = menu.findItem(R.id.notification);
                View menu_notification_view = MenuItemCompat.getActionView(item);
                ImageView notification_bell = (ImageView) menu_notification_view.findViewById(R.id.notification_bell);
                try {
                    TextView notification_count = (TextView) menu_notification_view.findViewById(R.id.actionbar_notifcation_textview);
                    if (Count > 0) {
                        notification_count.setVisibility(View.VISIBLE);
                        notification_count.setText(String.valueOf(Count));
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            return true;
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      相关资源
      最近更新 更多