3

カスタム通知を作成し、ユーザーが通知をカスタマイズできるようにプログラムでビューを追加してレイアウトを編集する方法を知りたいです。

私ができないことはこれです:

次のようなカスタム LinearLayout を作成すると:

LinearLayout ll = new LinearLayout(c);
ImageView iv = new ImageView(c);
iv.setImageResource(R.drawable.bt_close);
ll.addView(iv);

このレイアウトを使用して通知を作成し、ImageView をクリックしたときに実行するアクションを追加するにはどうすればよいですか?

カスタム通知を行うコードはこれだけですか?

Notification notification = (statusIcon, appName, System.currentTimeMillis());
notification.contentView = new RemoteViews(this.getPackageName(),R.layout.notification);

どうもありがとうございました...

4

2 に答える 2

3

通知領域はRemoteViews、Android アプリのウィジェットと同じように使用します。

アプリケーションの UI パーツとは異なります。それらへの参照があり、それらを作成できますが、それらは他のアプリに存在します。(通知の UI はシステム アプリにあり、アプリ ウィジェットはホーム ランチャー アプリにあります。)

アプリには実際には表示されないため、直接アクセスすることはできません。onClickListenerたとえば、設定することはできません。

それが私たちが持っている理由RemoteViewsです。

それらを使用して、レイアウトファイルと、テキスト、画像などを変更する組み込み関数を提供することにより、それらの作成方法を定義できます。またPendingIntent、ボタンがクリックされたときに起動されるようにします。それでおしまい。

最終的に、実際には通知の UI を動的に変更できますが、アプリで通常行う方法は変更できません。

作成方法については、この回答を参照してください。 https://stackoverflow.com/a/21283668/1016462

于 2014-12-30T08:28:52.887 に答える