4

タイトルバーに長いテキストで通知を表示しようとしています。

    PendingIntent contentIntent = PendingIntent.getActivity(context,
            NOTIFICATION_ID, notificationIntent,
            PendingIntent.FLAG_ONE_SHOT);
    NotificationManager nm = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationCompat.Builder builder = new NotificationCompat.Builder(
            context);
    builder.setContentIntent(contentIntent)
            .setSmallIcon(R.drawable.icon_push).setTicker(alert)
            .setContentTitle(title).setContentText(alert)
            .setWhen(System.currentTimeMillis()).setAutoCancel(true)
            .setDefaults(Notification.DEFAULT_ALL)
            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
        builder.setStyle(new NotificationCompat.BigTextStyle()
                .bigText(title));
    }
    Notification n = builder.build();
    nm.notify(id, n);

しかしbuilder.setStyle(new NotificationCompat.BigTextStyle() .bigText(title));

setStyle何もしないようです。Android 4.1でテストしています

4

3 に答える 3

7

これを削除する必要があります:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {

これは互換性があるため、自動的に正しく設定されます。

これは 100% 動作するコードです。

        NotificationManager notificationManager = (NotificationManager) this
            .getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationCompat.Builder builder = new NotificationCompat.Builder(
            this);
    builder.setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("titletitletitletitletitletitletitletitletitletitletitletitle").setContentText("contentcontentcontentcontentcontentcontentcontent")
            .setWhen(System.currentTimeMillis()).setAutoCancel(true)
            .setDefaults(Notification.DEFAULT_ALL)
            .setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
            .setStyle(new NotificationCompat.BigTextStyle()
                    .bigText("bigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbigbig"));

    Notification notification = builder.build();
    notificationManager.notify(1, notification);
于 2013-10-30T15:50:22.970 に答える
1

変数名が正しく、名前付きの変数titleがタイトルのみの場合、問題はbigText(title)代わりに使用していることですbigText(aReallyBigText);

于 2013-10-30T15:49:39.273 に答える