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

时间:2014-09-24 04:33:11

标签: android android-notifications

我在android中编写应用程序。我们将有多个图标的仪表板,我想在其中一个带有计数器编号的图标上显示徽章。我希望一旦通知到来,像计数器这样的实现将在仪表板上更新。如何在通知时实现它。

这是一笔交易,

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

谢谢, PRASHANT。

2 个答案:

答案 0 :(得分:1)

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

查找更多详情android-ios-style-badge-app-icon-for.html

答案 1 :(得分:-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>

布局/ 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;
    }

}