如何在 Android Studio 中导入 android.support.v7.app.NotificationCompat.Builder 类

新手上路,请多包涵

我正在尝试在我的 android 应用程序中实现简单的通知。我正在参考这个 开发者指南

但是收到此错误消息:

 Incompatible types.
Required: android.support.v7app.NotificationCompat.Builder
Found: android.support.v4.app.Notification.Compat.Builder

错误信息截图

对于以下代码片段:

 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.ic_launcher)
                        .setContentTitle("My notification")
                        .setContentText("Hello World!");

这是我的进口商品:

 import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.NotificationCompat;
import android.view.View;
import android.widget.Button;

我认为导入了正确的 NotificationCompat 类。我正在使用 Android Studio v2.1.2 进行开发。请帮助我解决此错误消息。我是 android 编程和 java 的新手。

原文由 Kuldeep Kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 746
2 个回答

这些构建器方法的返回类型正在返回 NotificationCompat.Builder 的 v4 版本。 v7 NotificationCompat.Builder 扩展了 v4 版本并且很大程度上只是继承了它的方法,这意味着返回类型不会改变。

文档:

如果您需要 v7 版本(为了支持 NotificationCompat.MediaStyle),只需投射到它即可。

 NotificationCompat.Builder mBuilder = (android.support.v7.app.NotificationCompat.Builder) new NotificationCompat.Builder(this)
                    .setSmallIcon(R.drawable.ic_launcher)
                    .setContentTitle("My notification")
                    .setContentText("Hello World!");

如果不是,请交换您的导入以使用 v4 版本。

原文由 Meetarp 发布,翻译遵循 CC BY-SA 3.0 许可协议

代替

 import android.support.v7.app.NotificationCompat;

 import android.support.v4.app.NotificationCompat;

原文由 Dhruvi 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏