Android 在屏幕上不显示布局的情况下执行活动

Android 在屏幕上不显示布局的情况下执行活动,android,android-activity,Android,Android Activity,我不仅搜索了stackoverflow,还搜索了其他网站,但我找不到问题的答案。我现在开始学习安卓,我对活动有点怀疑 我有一个MainActivity,它用两个按钮创建一个通知。一个现在已经没有用了,另一个(发送按钮)将打开一个带有EditText的警报和一个将文本发送到另一个应用程序的按钮 代码如下: Intent mainActivityIntent = new Intent(MainActivity.this, NotificationActivity.class);

我不仅搜索了stackoverflow,还搜索了其他网站,但我找不到问题的答案。我现在开始学习安卓,我对活动有点怀疑

我有一个MainActivity,它用两个按钮创建一个通知。一个现在已经没有用了,另一个(发送按钮)将打开一个带有EditText的警报和一个将文本发送到另一个应用程序的按钮

代码如下:

Intent mainActivityIntent = new Intent(MainActivity.this, NotificationActivity.class);
            Intent shareActivityIntent = new Intent(MainActivity.this, ShareActivity.class);
            PendingIntent mainActivityPIntent = PendingIntent.getActivity(MainActivity.this, 0, mainActivityIntent, 0);
            PendingIntent shareActivityPIntent = PendingIntent.getActivity(MainActivity.this, 0, shareActivityIntent, 0);

            Notification n = new Notification.InboxStyle 
                    (new Notification.Builder(MainActivity.this)
                    .setContentTitle(getString(R.string.text_notification))
                    .setContentText(getString(R.string.text_notification))
                    .setSmallIcon(R.drawable.ic_launcher)
                    .setContentIntent(mainActivityPIntent)
                    .addAction(R.drawable.logo, "Botão", mainActivityPIntent)
                    .addAction(R.drawable.ic_launcher, "Share", shareActivityPIntent)
                            )
                    .build();

            n.flags |= Notification.FLAG_ONGOING_EVENT;

            NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            nm.notify(0, n);
如您所见,发送按钮将打开另一个活动,其代码如下:

AlertDialog.Builder alert = new AlertDialog.Builder(this);

    alert.setTitle("Mensagem");
    alert.setMessage("Digite a mensagem");


    final EditText input = new EditText(this);
    alert.setView(input);

    alert.setPositiveButton("Enviar", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
      String value = input.getText().toString();
      Intent i = new Intent(Intent.ACTION_SEND);
        i.setType("text/plain");
        i.putExtra(Intent.EXTRA_TEXT, value);
        startActivity(Intent.createChooser(i, "Enviar"));
        finishActivity(0);
      }
    });

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int whichButton) {
        return;
      }
    });

    alert.show();
此活动负责打开警报,用户将在其中输入文本并发送到其他应用程序

情况是,当我调用活动时,它不仅会显示警报,还会打开一个新的“屏幕”。示例:通知是持久的,因此它将始终显示在通知抽屉上。如果我在另一个应用程序上,并且我单击了通知上的按钮,我只想打开警报,但现在它正在打开警报和带有我活动布局的屏幕

有没有办法只显示警报而不显示活动?还是我必须用另一种方法来做这件事


非常感谢。

如果不需要警报对话框,您可以将警报设置为自己的活动,而不必使用警报生成器。按需要放置按钮和文本视图或任何东西。然后在清单中使用


更多关于主题。希望这有帮助

谢谢,如果我忘了什么,请随意添加。我以为我在家里有我的密码,但我mistaken@vdlow不客气。让我知道你是否需要一些不同的东西,或者它是否适合你需要的东西,你可以接受,这样其他有同样问题的人可以发现它更容易工作!!非常感谢你,最终的结果比我预期的要好。我不知道主题和风格,我会尝试了解更多。非常感谢。我很高兴它对你有用。一旦你了解了安卓系统的功能,安卓系统上的大多数东西都很简单。这是一个棘手的部分,学习你能用它做的一切:)codeMagic的建议很好。只需为通知活动创建一个布局,使其看起来像一个
AlertDialog
,但要给它一个
Theme.Dialog
属性。这使它看起来像一个“对话框”弹出窗口,但具有
活动的全部功能。这意味着您根本不需要
警报对话框
,而且
活动
不会清空背景,因此它会让任何其他应用程序部分可见。