3

このチュートリアルを使用しています http://www.vogella.com/articles/AndroidNotifications/article.html、通知を作成したい

// 通知が選択された場合に // トリガーされるインテントを準備します

Intent intent = new Intent(this, NotificationReceiver.class);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);

// Build notification
// Actions are just fake
Notification noti = new Notification.Builder(this)
        .setContentTitle("New mail from " + "test@gmail.com")
        .setContentText("Subject")
        .setSmallIcon(R.drawable.icon)
        .setContentIntent(pIntent)
        .addAction(R.drawable.icon, "Call", pIntent)
        .addAction(R.drawable.icon, "More", pIntent)
        .addAction(R.drawable.icon, "And more", pIntent).build();


NotificationManager notificationManager = 
  (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

// Hide the notification after its selected
noti.flags |= Notification.FLAG_AUTO_CANCEL;

notificationManager.notify(0, noti); 

私は行にエラーがありますaddAction、Eclipseはそれを言いますthe method addaction(ing, String pendingintent) is undefined for the type notification.builder

4

3 に答える 3

0

sdkTargetVersion<uses-sdk>要素をAndroidManifest.xml16 以上に設定する必要があります。このaddAction(...)メソッドは、古いバージョンの Android には存在しません。

于 2013-04-02T09:11:32.090 に答える
0

android-support-v4.jaryoutプロジェクトのlibフォルダーにあるファイルを使用/lib/android-support-v4.jarして追加する必要があります

  1. あなたのptoject---->プロパティ(Alt +)-->ビルドパス-->ライブラリ--> jarを追加-> android-support-v4.jarlibフォルダーから選択-> OK

  2. your ptoject---->properites (Alt+)--> Build Path--> Order & Export--> すべて選択--> OK.

これを使用すると、コードは <= 11 API レベルで実行されます。


編集: 以下のメソッドには MIN 11 API レベルが必要なため、エラーが発生しています

.setContentTitle("My notification")
.setContentText("Hello World!");

以下のメソッドには MIN API LEVEL 16 が必要です。

.addAction(R.drawable.ic_launcher, "call", pIntent)
.addAction(R.drawable.ic_launcher, "more", pIntent)
.addAction(R.drawable.ic_launcher, "add more", pIntent)

あなたの解決策は以下のように使用されます:

ここに画像の説明を入力

Intent intent = new Intent(this, TestSettings.class);
        PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);

        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
                this).setSmallIcon(R.drawable.ic_launcher)
                .addAction(R.drawable.ic_launcher, "call", pIntent)
                .addAction(R.drawable.ic_launcher, "more", pIntent)
                .addAction(R.drawable.ic_launcher, "add more", pIntent)
                .setContentTitle("My notification")
                .setContentText("Hello World!");
        // Creates an explicit intent for an Activity in your app
        Intent resultIntent = new Intent(this, TestSettings.class);

        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);

        stackBuilder.addParentStack(TestSettings.class);

        stackBuilder.addNextIntent(resultIntent);
        PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
                PendingIntent.FLAG_UPDATE_CURRENT);
        mBuilder.setContentIntent(resultPendingIntent);
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        mNotificationManager.notify(100, mBuilder.build());

android-support-v4.jarjarファイルを追加したことを確認してください

于 2013-04-02T09:14:33.697 に答える
0

サポート ライブラリの不適切なバージョンを使用しています。AddAction は r13 で導入されました (おそらくそれ以前)。

于 2013-07-24T14:24:53.253 に答える