如何在Android中使用推送通知实现徽章?

3
我正在编写一个Android应用程序。我们将有一个带有多个图标的仪表板,我想在其中一个图标上显示徽章和计数器数字。我希望实现的方式是一旦收到通知,仪表板上的计数器数字就会更新。如何在通知中实现它?
以下是解决方案,
我们有一个表格,通过云(即Google App Engine)向其中插入用户数据。一旦条目被插入表格,推送通知将提示用户,并且位于同一屏幕上的仪表板上的计数器数字将得到更新。 请给我一个例子,以便我可以将其实现到我的应用程序中。
谢谢, Prashant.

你收到通知了吗? - T_V
在您的接收通知方法中,放置来自此链接 https://github.com/shafty023/SamsungBadger 的代码。 - Chitrang
2个回答

1
你想在iOS应用程序上应用徽章吗?如果你想做到这一点,由于这不是Android的行为,因此没有直接的方法,但我们仍然可以通过一些制造商(如三星、索尼和HTC)的帮助来实现。更多细节请参见android-ios-style-badge-app-icon-for.html

-1

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

menu/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>

layout/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;
    }

}

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