1

アクティビティでダイアログを作成しました。非同期タスクを使用すると、そのダイアログが定期的に表示されます。別のアクティビティに移動したときにもダイアログを表示することはできますか?

4

2 に答える 2

1

私は過去に2つの異なる方法でそれをしました。

1)必要に応じて表示するダイアログとして使用されるレイアウトを作成します(各アクティビティレイアウトにインポートされ、非表示になります)(メッセージが必要な場合は、そのダイアログのみをポップアップする「空の」アクティビティを作成することもできます。

2) CustomDialog クラスを作成して使用します (カスタマイズされたフォントを処理するために使用しましたが、このコードには 1 回だけ入れます)。

//main Activity:
     DialegError da = new DialegError(this);
     da.crearDialeg("APP ERROR", "this is an error");

//Error class
public class DialegError {
    private Activity a = null;

    public DialegError(Activity activity){
            a=activity;
    }

    /**
     * Default NO-MESSAGE errorDialog
     */
    public void crearDialeg(String titol){
        AlertDialog dialog = new AlertDialog.Builder(a)
            .setTitle( titol )
//          .setIcon(R.drawable.)
            .setPositiveButton( a.getString(R.string.button_aceptar), new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    return;
                }
            })
            .show();
    }

    /**
     * Default errorDialog
     */
    public void crearDialeg(String titol, String cos){
        AlertDialog dialog = new AlertDialog.Builder(a)
            .setTitle( titol )
            .setMessage( cos )
//          .setIcon(R.drawable.)
            .setPositiveButton( a.getString(R.string.button_aceptar), new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    return;
                }
            })
            .show();

     //Personalized font. No way to deal with the title text.
     Typeface font=Typeface.createFromAsset(a.getAssets(),"fonts/font_name.ttf");
     TextView textView = (TextView)dialog.findViewById(android.R.id.message);
     textView.setTypeface(font);
     textView =  (TextView)dialog.findViewById(android.R.id.button1);
     textView.setTypeface(font);
    }

    /**
     * Error Dialog that closes the invoker activity.
     */
    public void crearDialegError(String titol, String cos, int err){
        final Activity activitat = a;
        final int error = err;
        AlertDialog dialog = new AlertDialog.Builder(activitat)
            .setTitle( titol )
            .setMessage( cos )
//          .setIcon(R.drawable.)
            .setPositiveButton( activitat.getString(R.string.button_aceptar), new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    activitat.setResult(error, new Intent());
                    activitat.finish();
                }
            })
            .show();
    }
}
于 2012-12-03T11:34:54.803 に答える
0

ダイアログを表示するためのボタンを作成し、ダイアログを表示するための任意のコードをonclickし、ボタンのクリックを定期的に設定します。

public void getRunningClick(){
     new Handler().postDelayed(new Runnable() {
            public void run() {
                  //your code showing dialog
            }
        },(2*1000));
}

希望はあなたの助けになります

于 2012-12-03T10:31:34.953 に答える