- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
IMAGE我有代码。这工作正常,也关闭了通知。但是当我点击“关闭”按钮时,它会打开应用程序并关闭对话框。这对我来说不是必需的。实际上我想要的是,在不打开任何 Activity 的情况下单击“DISMISS”按钮后关闭通知对话框。
MainActivity.java
public class MainActivity extends Activity{
static int numMessages = 0;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.notificationmain);
context = getApplicationContext();
Button bcustomnotifyaction = (Button) findViewById(R.id.customnotificationaction);
bcustomnotifyaction.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CustomNotificationAction();
}
});
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void CustomNotificationAction() {
// Set Notification Title
String strtitle = "You Got New Notification.";
// Set Notification Text
String strtext ="Hi,How are You?";
// Open NotificationView Class on Notification Click
Intent intent = new Intent(this, NotificationView.class);
// Send data to NotificationView Class
intent.putExtra("title", strtitle);
intent.putExtra("text", strtext);
// Open NotificationView.java Activity
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
int notificationId = new Random().nextInt(); // just use a counter in some util class...
PendingIntent dismissIntent = NotificationActivity.getDismissIntent(notificationId, getApplicationContext());
//Create Notification using NotificationCompat.Builder
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
// Set Icon
.setSmallIcon(R.drawable.logosmall)
// Set Ticker Message
.setTicker(strtitle)
// Set Title
.setContentTitle(strtitle)
// Set Text
.setContentText(strtext)
// Add an Action Button below Notification
.addAction(android.R.drawable.ic_menu_close_clear_cancel, "Dismiss", dismissIntent)
.addAction(android.R.drawable.ic_menu_info_details, "Info", pIntent)
// Set PendingIntent into Notification
.setContentIntent(pIntent)
// showing action button on notification
.setPriority(Notification.PRIORITY_MAX)
.setWhen(0)
/* Increase notification number every time a new notification arrives */
.setNumber(++numMessages)
// Dismiss Notification
.setAutoCancel(true);
// Create Notification Manager
NotificationManager notificationmanager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
// Build Notification with Notification Manager
notificationmanager.notify(0, builder.build());
}
}
notificationmain.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".NotificationView" >
<Button
android:id="@+id/customnotificationaction"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/customnotificationaction" />
</RelativeLayout>
NotificationView.java
public class NotificationView extends Activity {
String title;
String text;
TextView txttitle;
TextView txttext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.notificationview);
// Create Notification Manager
NotificationManager notificationmanager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// Dismiss Notification
notificationmanager.cancel(0);
// Retrive the data from MainActivity.java
Intent i = getIntent();
title = i.getStringExtra("title");
text = i.getStringExtra("text");
// Locate the TextView
txttitle = (TextView) findViewById(R.id.title);
txttext = (TextView) findViewById(R.id.text);
// Set the data into TextView
txttitle.setText(title);
txttext.setText(text);
}
}
notificationview.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/lbltitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lbltitle" />
<TextView
android:id="@+id/lbltext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/lbltitle"
android:text="@string/lbltext" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/lbltitle" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_toRightOf="@+id/lbltext" />
</RelativeLayout>
NotificationActivity.java
public class NotificationActivity extends Activity {
public static final String NOTIFICATION_ID = "NOTIFICATION_ID";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.cancel(0);
finish(); // since finish() is called in onCreate(), onDestroy() will be called immediately
}
public static PendingIntent getDismissIntent(int notificationId, Context context) {
Intent intent = new Intent(context, NotificationActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.putExtra(NOTIFICATION_ID, notificationId);
PendingIntent dismissIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
return dismissIntent;
}
}
解决方案:
我通过使用广播接收器获得了我的解决方案。
代码我改变了:我在 MainActivity.java CustomNotificationAction() 中添加了这段代码。
//Create an Intent for the BroadcastReceiver
Intent buttonIntent = new Intent(context, ButtonReceiver.class);
//Create the PendingIntent
PendingIntent btPendingIntent = PendingIntent.getBroadcast(context, 0, buttonIntent,0);
并将此行更改为
.addAction(android.R.drawable.ic_menu_close_clear_cancel, "Dismiss", dismissIntent)
给
.addAction(android.R.drawable.ic_menu_close_clear_cancel, "Dismiss", btPendingIntent)
并添加了一个 Java 文件
ButtonReceiver.java
public class ButtonReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Notification Dialog Closed",
Toast.LENGTH_LONG).show();
Log.d("Notification:","Notification Dialog Closed");
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.cancel(0);
PendingIntent resultPendingIntent = PendingIntent.getActivity(context, 0, new Intent(), 0);
NotificationCompat.Builder mb = new NotificationCompat.Builder(context);
mb.setContentIntent(resultPendingIntent);
}
}
并且在Mainfest文件中注册广播
<receiver android:name=".ButtonReceiver"/>
我的问题解决了:)
您也可以从此链接下载源代码:
最佳答案
应将广播接收器设置为在不启动 Activity 的情况下检测您的操作点击。
Dismiss Ongoing Android Notification Via Action Button Without Opening App
关于android - 单击关闭按钮后如何关闭通知对话框,而不调用任何 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38073139/
我想要一个没有标题栏的 qtip2 工具提示,但在角落里有一个关闭图标。有没有办法指定它,或者我是否必须使用创建它的代码?我正在考虑将按钮向左或向右 float 的东西,允许其余内容填充工具提示 di
我有一个 Jframe 窗口,里面有一个按钮。通过单击该按钮,它会打开一个新的 JFrame 窗口。但是当我关闭这个窗口时,它会自动关闭第一个带有按钮的 Jframe 窗口。当我关闭第二个 Jfram
我有一个关闭按钮。如何使关闭按钮在向下滚动页面时悬停?现在它位于顶部。当我们向下移动页面时,我希望它使其向右浮动(将内容悬停)。 最佳答案 使用 position 属性和 bottom、right 属
我正在使用 jtabbedpane,我正在尝试为选项卡设置一个关闭按钮,但不要丢失它所具有的标题! 注释: “GestorJanelas”是我的 JTabbedPane 字符串“titulo”是选项卡
是否有非 JSNI 方法可以向对话框的标题栏区域添加关闭按钮? 最佳答案 我们从项目一开始就使用了 GWT-ext。这是一个坏主意。他们有很多很酷的小部件,但它们不是 GWT 小部件,而且与 GWT
我正在尝试为以下机制找到解决方案: 我有一个底部播放器,它显示在所有页面上,角落里有一个“x”关闭按钮。每当我单击“X”时,播放器就会关闭,但如果我刷新页面,它会再次显示,我需要再次单击“X”才能隐藏
您好,我有一个 jFrame,我想问问用户他是否确定在单击关闭按钮时关闭 jframe: this.addWindowListener(new java.awt.event.WindowAda
我制作了一个 float 在屏幕中间的表单 为此我设计了一个关闭按钮 但我想在屏幕上的任何地方用鼠标点击关闭表单 我的代码 $(".offer-close").click(function ()
我正在尝试编写一个可以在同一行中多次放置的响应式按钮,并始终在包含该按钮的行下方显示其内容。 代码片段中有一个工作代码,但它有一个小缺陷:由于使用了伪类 focus,一旦按钮打开,点击屏幕上的任意位置
我正在开发一个适用于 OS X 的应用程序,在该应用程序中,我使用了一个自定义窗口,该窗口将图像绘制为背景,包括标题栏。我一直在修改this code绘制窗口,然后调用 [NSWindow stand
我正在使用 wxWidgets(C++ 版本)开发记事本应用程序,并且我正在努力实现多文件支持。使用 wxNotebook 类,我似乎找不到任何有关向页面添加关闭按钮的文档,因此我可以轻松关闭单个文件
我做了以下弹出窗口: https://jsfiddle.net/ca4h0a0q/ Click x This is your div content Javascript: $(
如何删除标记信息窗口中的“X”按钮? [ “美人鱼奥布里卡(原名:奥布里·亚历克西斯)”, 36.8618,-76.203, 5、 “迈克·欧文/乔治亚·梅森”, “USAVE汽车租赁”, “弗吉尼亚
我知道已经有问题问同样的问题,但是,我仍然没有运气在表单模态视图的角落实现“X”按钮。 在屏幕截图 HERE 中可以看到我正在尝试实现的一个完美示例。 . (如果 >= 10 代表的人可以通过在此处发
我正在尝试设置 WPF 窗口。 窗口应始终处于最大化状态 窗口不能移动或调整大小 它应该包含最小化和关闭按钮但不包含最大化按钮 我尝试了以下 XAML 代码 xaml 的输出是一个处于最大化状态的
当 fancybox 触发弹出窗口时,我想禁用关闭按钮,并在 x 秒后启用它。 有什么解决办法吗? 提前致谢。 最佳答案 这个很有趣。 如果您想隐藏关闭按钮以防止至少在 10 秒内关闭,您可能还想禁用
我正在 WPF 中创建一个基本的数据库应用程序,并且我已经开始使用 MVVM 模式。 我有一个对话框,要求用户从 ListBox 中选择一个项目,然后单击“确定”。之后,我将用户从 View 模型中的
如果“允许窗口管理器装饰窗口”已打开。wine 源中知道用户单击此 X 按钮并向应用程序发送 WM_CLOSE 的函数名称是什么?谢谢 最佳答案 窗口管理器发送类型为 WM_PROTOCOLS 且协议
在研究问题时,似乎大多数人都想做相反的事情(即删除最小化/关闭按钮)。我没有成功使用 reoccurrent setUndecorated 和 setDefaultCloseOperation 这是我
我正在使用 jqueryui 对话框,我想隐藏顶部的 X 按钮。 我试过下面的代码,但没有用。 $( '.ui-dialog-titlebar-close').remove(); 我的JS: $(f
我是一名优秀的程序员,十分优秀!