2

カスタム レイアウトを使用して通知にボタンを追加しようとしています。レイアウトを追加してボタンを表示することができました。ただし、クリックリスナーをボタンに追加する方法はまだわかりません。これが私が持っている関連コードです:

カスタム レイアウト通知を追加するコード:

String ns = Context.NOTIFICATION_SERVICE;
mNotificationManager = (NotificationManager) ctx.getSystemService(ns);
CharSequence tickerText = "Quick Application Launcher";
long when = System.currentTimeMillis();
Notification.Builder builder = new Notification.Builder(ctx);
Notification notification=builder.getNotification();
notification.when=when;
notification.tickerText=tickerText;
notification.icon=R.drawable.ic_launcher;

RemoteViews contentView=new RemoteViews(ctx.getPackageName(), R.layout.custom_notification);

Intent volume=new Intent(ctx, NotifActivityHandler.class);
volume.putExtra("DO", "2");
PendingIntent pVolume = PendingIntent.getActivity(ctx, 1, volume, 0);
contentView.setOnClickPendingIntent(R.id.btn2, pVolume);

notification.contentView = contentView;
notification.flags |= Notification.FLAG_ONGOING_EVENT;
mNotificationManager.notify(2345345, notification);

これは NotifActivityHandler コードです。

public class NotifActivityHandler extends Activity {

    private NotifActivityHandler ctx;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ctx=this;
        String action= (String)getIntent().getExtras().get("DO");
        Log.i("LOG", "lauching action: " + action);
        if(action.equals("1")){
        } else if(action.equals("2")){
        } else if(action.equals("config")){
            Intent i = new Intent(NotifActivityHandler.this, ConfigActivity.class);
            startActivity(i);
        }
    }   
}

上記のコードは、 を入れてもログを生成しませんLog.i。これの何が問題なのかわかりません。どんな助けでも大歓迎です。

アップデート

これをICSデバイスでテストしました。

4

1 に答える 1

3

でリスナーを登録する必要がある場合がありますAndroidManifest.xmlこれを見てください

于 2013-05-06T10:12:09.900 に答える