2012-02-14 13 views
0

複合ボタンやQuickContactBadge(QCB)をステータスバー通知に配置する方法を理解しようとしています。私は私のカスタムレイアウトを渡すためにリモートビューを使用していますが、ImageView、textViewsなどでうまく動作しますが、複合ボタン(例:スイッチ)を追加しようとすると例外が発生します。 これはXMLがAndroid:Androidでステータスバー通知のQuickContactBadgeやCompoundButtonなどのカスタムビューを使用する方法

<QuickContactBadge 
     android:id="@+id/badge" 
     android:layout_width="@dimen/avatar_small_size" 
     android:layout_height="@dimen/avatar_small_size" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:src="@drawable/ic_generic_user_square_small"/> 

どのように見えるか、これは私が通知

Intent notificationIntent; 
     PendingIntent contentIntent; 
     Notification.Builder builder = new Notification.Builder(this); 
     builder.setAutoCancel(false); 

     builder.setSmallIcon(R.drawable.icon); 
     builder.setTicker("Notification Alert"); 

     // This is where actual notification is constructed 
     notificationIntent = new Intent (this, MyActivity.class); 
     contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
     builder.setContentIntent(contentIntent); 

     contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout); 
     builder.setContent(contentView); 

     mNotificationManager.notify(notification_alert_id, builder.getNotification()); 

を投稿しようとしていますどのようにされており、これは私がこの

02-14 20:07:40.014 E/TabletStatusBar(1212): couldn't inflate view for notification 
02-14 20:07:40.014 E/TabletStatusBar(1212): android.view.InflateException: Binary XML file line #7: Error inflating class android.widget.QuickContactBadge 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.view.LayoutInflater.createView(LayoutInflater.java:606) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.view.LayoutInflater.parseInclude(LayoutInflater.java:823) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.view.LayoutInflater.rInflate(LayoutInflater.java:729) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.widget.RemoteViews.apply(RemoteViews.java:1570) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at com.android.systemui.statusbar.tablet.TabletStatusBar.inflateViews(TabletStatusBar.java:1779) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at com.android.systemui.statusbar.tablet.TabletStatusBar.addNotificationViews(TabletStatusBar.java:1587) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at com.android.systemui.statusbar.tablet.TabletStatusBar.addNotification(TabletStatusBar.java:790) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at com.android.systemui.statusbar.CommandQueue$H.handleMessage(CommandQueue.java:231) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.os.Looper.loop(Looper.java:137) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.app.ActivityThread.main(ActivityThread.java:4340) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at java.lang.reflect.Method.invokeNative(Native Method) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at java.lang.reflect.Method.invoke(Method.java:511) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at dalvik.system.NativeStart.main(Native Method) 
02-14 20:07:40.014 E/TabletStatusBar(1212): Caused by: android.view.InflateException: Binary XML file line #7: Class not allowed to be inflated android.widget.QuickContactBadge 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.view.LayoutInflater.failNotAllowed(LayoutInflater.java:618) 
02-14 20:07:40.014 E/TabletStatusBar(1212): at android.view.LayoutInflater.createView(LayoutInflater.java:558) 
02-14 20:07:40.014 E/TabletStatusBar(1212): ... 21 more 
を実行しようとすると、私が得る例外で

リモートビューを使用しているときに通知でQCBまたはカスタムビューを取得する方法はありますか?助けていただければ幸いです。

おかげ Abhi

答えて

1

私は、ステータスバーの通知に化合物ボタンやQuickContactBadge(QCB)を配置する方法を把握しようとしています。

できません。現在のバージョンのAndroidでは、これらのウィジェットはRemoteViewsで利用できません。

+0

ご返信ありがとうございます。リモートビューを使用せずにカスタム通知を送信する他の方法はありますか?またはこれらのウィジェットを通知用に使用できる他の方法はありますか? – Abhi

+0

@アビ:いいえ、いいえ。 – CommonsWare

+0

ご返信ありがとうございます。 – Abhi

関連する問題