2012-01-05 22 views
2

私の問題はあなたのために簡単に解決できると思います。私はバックグラウンドで実行しているアクティビティを開始するIntentを起動し、ダイアログを開きます。ここサービスによって起動されるダイアログを作成するにはどうすればよいですか?

Intent todialog = new Intent(); 
todialog.setClass(myService.this, openDialogInSleep.class); 
todialog.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(todialog); 

と活動されています:最後に

import android.app.Activity; 
import android.app.AlertDialog; 
import android.os.Bundle; 

public class openDialogInSleep extends Activity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    new AlertDialog.Builder(openDialogInSleep.this) 
    .setTitle("huhu") 
    .setNeutralButton("close", null); 
} 
} 

アンドロイドマニフェスト:

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

私の問題が示されていないこと、である 彼女は、サービスからの私のコードですタイトルは「huhu」、ボタンは「閉じる」のダイアログ。ちょうど私のactivitynameの一部を示す奇妙な形のダイアログが表示されます。 私は何を忘れましたか? 私を助けてください。

mfg。 Alex

答えて

2

実際にダイアログを表示するには、show()にチェーンするのを忘れてしまいます。あなたが見逃している

new AlertDialog.Builder(openDialogInSleep.this) 
    .setTitle("huhu") 
    .setNeutralButton("close", new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface arg0, int arg1) { 
      openDialogInSleep.this.finish(); 
     } 

    }) 
    .show(); 
+0

ohhhありがとうございました。何が失敗しましたか?Dでも、あなたはたぶん答えることのできるものが1つあります。今度はダイアログが表示されますが、閉じるをクリックすると、そのウィンドウには自分のアクティビティの名前が表示されます。どのようにしてこのボタンを書くことができますか?私の家のセクレが直接表示されます。 –

+0

ボタンをクリックした後にアクティビティを閉じるリスナを追加します。私はその答えを編集して短いサンプルを表示しました。同様に、ダイアログが戻るボタンで取り消される場合に備えて、 'OnCancelListener'を追加してください。 –

+0

thxが動作します! –

1

ことの一つは、AlertBuilderによって生成されたダイアログ上でshow()を呼び出すことです。

UPDATE

私が正しくあなたを理解していれば、あなたは活動は、画面の制御をしたいのではなく、単にダイアログを表示しませんか?

これが可能だと思わない場合は、同様の効果を作り出す唯一の方法はToastメッセージを使用することです。これはあなたのサービスから立ち上げることができ、あなたはその活動をまったく必要としません。

+0

ありがとうございます!あなたは他の答えに私のコメントを見ていただけますか? –

関連する問題