【问题标题】:how to set the value in custom notification textview如何在自定义通知文本视图中设置值
【发布时间】:2016-09-03 17:52:48
【问题描述】:

请帮我在自定义通知中设置文本视图中的文本

    private void startNotification()
 {
     String ns = Context.NOTIFICATION_SERVICE;
    NotificationManager notificationManager = (NotificationManager) getSystemService(ns);
    Notification notification = new Notification(R.drawable.ic_launcher, null, System.currentTimeMillis());
    RemoteViews notificationView = new RemoteViews(getPackageName(),R.layout.mynotification);
    mRemoteViews.setTextViewText(R.id.appName, getResources().getText(0,"gfhf"));
    mBuilder.setContent(mRemoteViews);
    Intent notificationIntent = new Intent(this, FlashLight.class);
    PendingIntent pendingNotificationIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
    notification.contentView = notificationView;
    notification.contentIntent = pendingNotificationIntent;
    notification.flags |= Notification.FLAG_NO_CLEAR;
    Intent switchIntent = new Intent(this, switchButtonListener.class);
    PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(this, 0, switchIntent, 0);
    notificationView.setOnClickPendingIntent(R.id.closeOnFlash,  pendingSwitchIntent);
    notificationManager.notify(1, notification);

}

java.lang.NullPointerException: 尝试调用虚方法 'void android.widget.RemoteViews.setTextViewText(int, java.lang.CharSequence)' 在空对象引用上

请帮我解决这个问题。如何在android的通知中设置textview的值,提前谢谢。

【问题讨论】:

  • 你到底想要什么??您想使用自定义样式 textView 创建自定义通知吗?为此创建自定义类并覆盖 DefaultNotificationFactory 并创建您自己的视图

标签: android sdk android-notifications


【解决方案1】:

检查一下:

private void startNotification() {

    int icon = R.drawable.icon_48;
    long when = System.currentTimeMillis();
    Notification notification = new Notification(icon, "Custom Notification", when);

    NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification);
    contentView.setImageViewResource(R.id.image, R.drawable.icon_48);
    contentView.setTextViewText(R.id.title, "Notification Title/App Name");
    contentView.setTextViewText(R.id.text, "message");
    notification.contentView = contentView;

    Intent notificationIntent = new Intent(this, YourClass.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    notification.contentIntent = contentIntent;

    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notification.defaults |= Notification.DEFAULT_LIGHTS; // LED
    notification.defaults |= Notification.DEFAULT_VIBRATE; //Vibration
    notification.defaults |= Notification.DEFAULT_SOUND; // Sound

    mNotificationManager.notify(1, notification);
}

custom_notification.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#fff"
android:padding="10dp">

<ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_marginRight="10dp" />

<TextView
    android:id="@+id/title"
    style="Custom Notification Title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/image"
    android:textSize="18sp"
    android:textColor="#336ba4" />

<TextView
    android:id="@+id/text"
    style="Custom Notification Text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/title"
    android:layout_toRightOf="@id/image"
    android:textSize="16sp"
    android:textColor="#336ba4" />
</RelativeLayout>

【讨论】:

  • 计算后如何将值放在运行时。谢谢 amarbir 我得到了值,但它显示零尼特实际值
  • 我想在该文本视图中设置电池电流百分比值 .. 因为我能够获取该值但是当我放入该文本视图时它显示为零
  • 您是否检查过您的日志或其他地方的电池百分比? textES.setText(String.format("%.1f",percentage) + "%");
  • stackoverflow.com/questions/3291655/… 之后使用 sharedpreference 保存它并返回到您的 Notification 类。
  • 除了sharedpreference还有其他方法可以解决这个问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多