gpt4 book ai didi

android - 如何在 Android 通知中添加按钮

转载 作者:行者123 更新时间:2023-11-29 14:07:06 25 4
gpt4 key购买 nike

我正在尝试在每个通知中添加一个按钮...用户可以单击该按钮删除单个通知,我看到很多人说只是引用“创建自定义扩展 View ”并使用 RemoteViews,但这可能吗修改官方代码让按钮起作用?我使用 imagebutton 在“status_bar_latest_event_context.xml”中添加了按钮

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="3dp"
>
<!--com.android.server.status.AnimatedImageView android:id="@+id/icon" -->
<ImageView android:id="@+id/icon"
android:layout_width="25dp"
android:layout_height="25dp"
android:scaleType="fitCenter"
android:src="@drawable/arrow_down_float"/>
<TextView android:id="@+id/title"
android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:paddingLeft="4dp"
/>
<ImageButton android:id="@+id/imgbtn_del"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btn_close"/>

</LinearLayout>

它会在每个通知中显示图像按钮,但我不知道如何让按钮工作。

在 StatusBarService.java 中,我们可以找到

    // bind the click event to the content area
ViewGroup content = (ViewGroup)row.findViewById(R.id.content);
content.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
content.setOnFocusChangeListener(mFocusChangeListener);
PendingIntent contentIntent = n.contentIntent;
if (contentIntent != null) {
content.setOnClickListener(new Launcher(contentIntent, notification.pkg,
notification.tag, notification.id));
}

它将点击事件绑定(bind)到内容区域。所以我不能点击按钮。我不知道如何修改源代码以及如何设置 OnClick 功能..

请帮忙...谢谢!非常感谢!

最佳答案

希望对你有帮助

//Exemple of notification with Button
private static void scheduleNotificationWithButton(Context context, String message) {

int notifReCode = 1;

//What happen when you will click on button
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, intent, PendingIntent.FLAG_ONE_SHOT);

//Button
NotificationCompat.Action action = new NotificationCompat.Action.Builder(R.drawable.my_image, "Delete", pendingIntent).build();

//Notification
Notification notification = new NotificationCompat.Builder(context)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentText("Back to Application ?")
.setContentTitle("Amazing news")
.addAction(action) //add buton
.build();

//Send notification
NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notification);
}

关于android - 如何在 Android 通知中添加按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com