我搜索的不僅僅是stackoverflow,還有其他網站,但是我找不到我的問題的答案。我現在開始學習Android,並且對活動有疑問。在不顯示屏幕布局的情況下執行活動
我有一個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();
該活動負責打開警報用戶將輸入文本併發送到其他應用程序。
情況是,當我呼叫該活動時,它不僅顯示警報,而且還打開一個新的「屏幕」。例如:通知是持久的,所以它會一直顯示在通知抽屜中。如果我在另一個應用中,並且點擊了通知中的按鈕,我只想打開警報,但現在它會打開警報,並顯示我的活動佈局。
有沒有辦法只顯示警報,而不顯示活動?或者我必須使用另一種方法來做到這一點?
非常感謝。
codeMagic的建議是一個很好的建議。只需爲通知活動創建一個佈局,使其看起來像一個'AlertDialog',但爲其提供'Theme.Dialog'屬性。這使得它看起來像一個「對話框」彈出框,但具有「活動」的全部功能。這意味着你根本不需要'AlertDialog','Activity'不會消除背景,所以它會留下任何其他部分可見的應用。 – Squonk