【问题标题】:Appcelerator Notification createRemoteViews click event listenerAppcelerator 通知 createRemoteViews 点击事件监听器
【发布时间】:2019-12-11 06:42:44
【问题描述】:

我正在尝试构建一个音乐播放器,为此我需要在通知托盘中进行音乐控制。 我为此使用 RemoteViews 但无法为播放/暂停、下一个和上一个添加事件侦听器。 下面是源代码。

custom_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@drawable/gradient_background"
android:orientation="vertical" >
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:orientation="horizontal" >
        <ImageView
        android:id="@+id/icon_logo"
        android:layout_width="25dp"
        android:layout_height="25dp"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="20dp"
        android:src="@drawable/app_logo_notification"/>
        <TextView android:id="@+id/lbl_logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="14dp"
        android:textColor="#b8a25e"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:text="TEST" />
    </LinearLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:layout_marginTop="10dp"
    android:orientation="horizontal" >
        <TextView android:id="@+id/message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18dp"
        android:textColor="#b8a25e"
        android:layout_marginLeft="20dp"
        android:text="Now Playing James Bond anthem"/>
    <ImageView
        android:id="@+id/icon_previous"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_marginLeft="20dp"
        android:src="@drawable/icon_previous_home"/>
        <ImageView
        android:id="@+id/icon_play"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_marginLeft="20dp"
        android:src="@drawable/ic_action_playback_play"/>
        <ImageView
        android:id="@+id/icon_next"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_marginLeft="20dp"
        android:src="@drawable/icon_next_home"/>
    </LinearLayout>
</LinearLayout>

通知码 -

    var AppR = Ti.App.Android.R;
    var customLayout = Ti.Android.createRemoteViews({
        layoutId : AppR.layout.custom_layout
    });
    var notification = Titanium.Android.createNotification({
        contentView : customLayout,
        visibility : Titanium.Android.VISIBILITY_PUBLIC,
        icon : AppR.drawable.app_logo_notification,
    });


    customLayout.setTextViewText(AppR.id.message, "Now Playing...\n");
    customLayout.setImageViewResource(AppR.id.icon_play, AppR.drawable.ic_action_playback_pause);
    var icon_play = AppR.id.icon_play;
    Ti.Android.NotificationManager.notify(1, notification);

任何建议将不胜感激。

【问题讨论】:

    标签: javascript titanium titanium-alloy


    【解决方案1】:

    RemoteView 通知的完整示例位于:
    https://docs.axway.com/bundle/Titanium_SDK_allOS_en/page/android_notifications.html#AndroidNotifications-Customlayout
    具有按钮和点击事件。

    在你的例子中应该是:

    customLayout.setOnClickPendingIntent(Ti.App.Android.R.id.icon_play, onClickCallback);
    
    function onClickCallback(){}
    

    【讨论】:

    • 我已经尝试过了,它会导致应用程序崩溃。 setOnClickPendingIntent 期待一个未决的意图
    猜你喜欢
    • 1970-01-01
    • 2012-11-27
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    相关资源
    最近更新 更多