3

stackoverflow だけでなく、別のサイトも検索しましたが、問題に対する答えが見つかりませんでした。Androidの学習を始めたばかりで、活動に疑問を持っています。

2 つのボタンで通知を作成する MainActivity があります。もう 1 つ ([送信] ボタン) は、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();

このアクティビティは、ユーザーがテキストを入力して別のアプリケーションに送信するアラートを開く役割を果たします。

アクティビティを呼び出すと、アラートが表示されるだけでなく、新しい「画面」も開かれるという状況です。例: 通知は永続的であるため、常に通知ドロワーに表示されます。別のアプリを使用していて、通知のボタンをクリックした場合、アラートのみを開きたいのですが、アラートとアクティビティのレイアウトを含む画面を開いています。

アクティビティを表示せずにアラートのみを表示する方法はありますか? または、これを行うには別の方法を使用する必要がありますか?

どうもありがとうございました。

4

1 に答える 1

1

アラート ダイアログが絶対に必要でない場合は、アラートを独自のアクティビティにして、アラート ビルダーを使用しないようにすることができます。ボタンやテキストビューなど、必要なものを自由に配置してください。次に、マニフェストで使用します

<activity android:theme="@android:style/Theme.Dialog">

テーマについては以上です。お役に立てれば

于 2012-12-12T23:22:54.633 に答える