アプリケーションで3日に1回ダイアログボックスを表示する方法

user6405383

これが機能している私のコードです。ユーザーがこのボタンをタップするとダイアログボックスがまったく表示されない場合は、「ノーサンクス」のコードボタンを教えてください

 public class MainActivity extends Activity {


    Button btnRegId;
    EditText etRegId;
    String regID;

    GoogleCloudMessaging gcm;
    String regid,url;

    //String PROJECT_NUMBER = "90787073097";
    String PROJECT_NUMBER =  "440085976573";


    String android_id,version,ver;


ImageView mega4,todayTips,latstnews,sportquiz,tipister;

TextView txtname;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

  // etRegId = (EditText) findViewById(R.id.edtvID);




    //********************For Rating APP **********************
     SharedPreferences sharedPrefs = MainActivity.this.getSharedPreferences("RATER", 0);

     SharedPreferences.Editor prefsEditor = sharedPrefs.edit();

    long time = sharedPrefs.getLong("displayedTime", 0);
    if (time < System.currentTimeMillis() - 259200000) {
       displayDialog();
       prefsEditor.putLong("displayedTime", System.currentTimeMillis()).commit();
    }
 }

   //dialog box Function for rating app.

private void displayDialog() {
    // TODO Auto-generated method stub
      DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            switch (which){
            case DialogInterface.BUTTON_POSITIVE:
                //Yes button clicked
                   Intent in = new Intent(android.content.Intent.ACTION_VIEW);
                   in.setData(Uri.parse(url));
                   startActivity(in);
                break;

            case DialogInterface.BUTTON_NEGATIVE:
                //No button clicked
                break;
            }
        }
    };

    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle("Rate This App");
    builder.setMessage("You really seem to like this app, "
              +"since you have already used it %totalLaunchCount% times! "
              +"It would be great if you took a moment to rate it.")
    .setPositiveButton("Rate Now", dialogClickListener)
        .setNegativeButton("Latter", dialogClickListener)
        .setNeutralButton("No,thanks", dialogClickListener).show();

   }
   //End dialog box Function for rating app.
  }

これが私のコードです実際にアプリケーションにアプリの評価ダイアログボックスを実装したいのですが、これは3日に1回表示されます

Aayush thakur

SharedPreferencesとEditorオブジェクトを次のように初期化する必要があります。

   SharedPreferences prefs = mContext.getSharedPreferences("RATER", 0);
   SharedPreferences.Editor editor = prefs.edit();

更新

ユーザーが感謝しないときにブール値を保存し、ダイアログを表示する前に確認してください。trueの場合、ダイアログボックスは表示されません。

//Saving a boolean on no thanks button click

SharedPreferences prefs = mContext.getSharedPreferences("RATER", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("NO THANKS", true));
editor.apply();

メソッドを表示するダイアログでアクセスします。

    SharedPreferences prefs = mContext.getSharedPreferences("RATER", 0);
    if (prefs.getBoolean("NO THANKS", false)) {
        return;
    }else {
   SharedPreferences.Editor editor = prefs.edit();
    //YOUR CODE TO SHOW DIALOG
    editor.apply();
}

完全なコード

public class MainActivity extends Activity {

Button btnRegId;
EditText etRegId;
String regID;

GoogleCloudMessaging gcm;
String regid, url;

//String PROJECT_NUMBER = "90787073097";
String PROJECT_NUMBER = "440085976573";


String android_id, version, ver;


ImageView mega4, todayTips, latstnews, sportquiz, tipister;

TextView txtname;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // etRegId = (EditText) findViewById(R.id.edtvID);


    //********************For Rating APP **********************
    SharedPreferences sharedPrefs = MainActivity.this.getSharedPreferences("RATER", 0);
    if (sharedPrefs.getBoolean("NO THANKS", false)) {
        return;
    } else {
        SharedPreferences.Editor prefsEditor = sharedPrefs.edit();
        //YOUR CODE TO SHOW DIALOG
        long time = sharedPrefs.getLong("displayedTime", 0);
        if (time < System.currentTimeMillis() - 259200000) {
            displayDialog();
            prefsEditor.putLong("displayedTime", System.currentTimeMillis()).commit();
        }
        prefsEditor.apply();
    }


}

//dialog box Function for rating app.

private void displayDialog() {
    // TODO Auto-generated method stub
    DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            switch (which) {
                case DialogInterface.BUTTON_POSITIVE:
                    //Yes button clicked
                    Intent in = new Intent(android.content.Intent.ACTION_VIEW);
                    in.setData(Uri.parse(url));
                    startActivity(in);
                    break;

                case DialogInterface.BUTTON_NEGATIVE:
                    //No button clicked
                    //Saving a boolean on no thanks button click

                    SharedPreferences prefs = MainActivity.this.getSharedPreferences("RATER", 0);
                    SharedPreferences.Editor editor = prefs.edit();
                    editor.putBoolean("NO THANKS", true);
                    editor.apply();
                    break;
            }
        }
    };

    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle("Rate This App");
    builder.setMessage("You really seem to like this app, "
            + "since you have already used it %totalLaunchCount% times! "
            + "It would be great if you took a moment to rate it.")
            .setPositiveButton("Rate Now", dialogClickListener)
            .setNegativeButton("Latter", dialogClickListener)
            .setNeutralButton("No,thanks", dialogClickListener).show();

}
//End dialog box Function for rating app.
    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ボタンをタップしたときにアプリケーションランチャーダイアログを表示する方法

分類Dev

VBフォームアプリケーションのダイアログボックスで設定された値を呼び出し元に渡す方法

分類Dev

アプリケーションの起動時にカスタムダイアログを表示する方法

分類Dev

人が少なくとも1日に1回ログインしているかどうかを確認する方法と、mysql-flaskアプリケーションでログインのセッションの長さを計算する方法は?

分類Dev

アプリケーションのダイアログボックスの色を変更できません

分類Dev

印刷ダイアログをアプリケーションに追加する方法

分類Dev

印刷ダイアログをアプリケーションに追加する方法

分類Dev

C#フォームアプリケーションでダイアログボックスについて作成する

分類Dev

AndroidキオスクアプリケーションでUSB許可ダイアログを表示しますか?

分類Dev

アプリケーションAndroidのアクティビティの上にアラートダイアログを表示する方法

分類Dev

アプリケーションをデバッグするときにExcelからコンボボックスにデータをロードする方法

分類Dev

イオン2アプリケーションで角度グローバルにアクセスする方法は?

分類Dev

RPi3のクロスコンパイルアプリケーションのメインウィンドウにボーダーフレームとタイトルバーを表示するにはどうすればよいですか?

分類Dev

このダイアログの外側をクリックしたときに確認ボックスが閉じられないようにするモバイル アプリケーションの方法

分類Dev

Inno Setup:ドロップダウンですぐに閉じるコンボボックス(アプリケーションを起動します)

分類Dev

デスクトップに最新のブログ投稿を表示するアプリケーション

分類Dev

JavaアプリケーションでMongoDBログをリダイレクトする方法は?

分類Dev

ダイアログボックスに誤った値のみを1回だけ表示する方法

分類Dev

スプラッシュ画面の後にアラートダイアログを1回だけ表示する

分類Dev

[アプリケーションの選択]ダイアログリストにアプリケーションを表示します

分類Dev

Auth0を使用して、1回のアプリケーションログインで複数のリソースに対して認証する

分類Dev

特定のアプリケーションの[強制停止]ダイアログを表示する方法

分類Dev

セキュリティアラートを表示するドロップボックスをアプリケーションに統合する

分類Dev

スタンドアロンアプリケーションでEhcacheCacheManagerをシャットダウンする方法

分類Dev

アプリケーションの最初の起動時にダイアログを表示する

分類Dev

PyQT5の入力アプリケーションダイアログボックスがWindows10の画面に表示されない

分類Dev

sudo でデスクトップ グラフィカル アプリケーションを 1 回だけ実行する方法は?

分類Dev

コマンドラインから「スタートアップアプリケーション」でプログラムを無効にする方法

分類Dev

ペイロード付きのカスタムメッセージをボットからクライアントアプリケーションにダイレクトライン経由で送信するにはどうすればよいですか?

Related 関連記事

  1. 1

    ボタンをタップしたときにアプリケーションランチャーダイアログを表示する方法

  2. 2

    VBフォームアプリケーションのダイアログボックスで設定された値を呼び出し元に渡す方法

  3. 3

    アプリケーションの起動時にカスタムダイアログを表示する方法

  4. 4

    人が少なくとも1日に1回ログインしているかどうかを確認する方法と、mysql-flaskアプリケーションでログインのセッションの長さを計算する方法は?

  5. 5

    アプリケーションのダイアログボックスの色を変更できません

  6. 6

    印刷ダイアログをアプリケーションに追加する方法

  7. 7

    印刷ダイアログをアプリケーションに追加する方法

  8. 8

    C#フォームアプリケーションでダイアログボックスについて作成する

  9. 9

    AndroidキオスクアプリケーションでUSB許可ダイアログを表示しますか?

  10. 10

    アプリケーションAndroidのアクティビティの上にアラートダイアログを表示する方法

  11. 11

    アプリケーションをデバッグするときにExcelからコンボボックスにデータをロードする方法

  12. 12

    イオン2アプリケーションで角度グローバルにアクセスする方法は?

  13. 13

    RPi3のクロスコンパイルアプリケーションのメインウィンドウにボーダーフレームとタイトルバーを表示するにはどうすればよいですか?

  14. 14

    このダイアログの外側をクリックしたときに確認ボックスが閉じられないようにするモバイル アプリケーションの方法

  15. 15

    Inno Setup:ドロップダウンですぐに閉じるコンボボックス(アプリケーションを起動します)

  16. 16

    デスクトップに最新のブログ投稿を表示するアプリケーション

  17. 17

    JavaアプリケーションでMongoDBログをリダイレクトする方法は?

  18. 18

    ダイアログボックスに誤った値のみを1回だけ表示する方法

  19. 19

    スプラッシュ画面の後にアラートダイアログを1回だけ表示する

  20. 20

    [アプリケーションの選択]ダイアログリストにアプリケーションを表示します

  21. 21

    Auth0を使用して、1回のアプリケーションログインで複数のリソースに対して認証する

  22. 22

    特定のアプリケーションの[強制停止]ダイアログを表示する方法

  23. 23

    セキュリティアラートを表示するドロップボックスをアプリケーションに統合する

  24. 24

    スタンドアロンアプリケーションでEhcacheCacheManagerをシャットダウンする方法

  25. 25

    アプリケーションの最初の起動時にダイアログを表示する

  26. 26

    PyQT5の入力アプリケーションダイアログボックスがWindows10の画面に表示されない

  27. 27

    sudo でデスクトップ グラフィカル アプリケーションを 1 回だけ実行する方法は?

  28. 28

    コマンドラインから「スタートアップアプリケーション」でプログラムを無効にする方法

  29. 29

    ペイロード付きのカスタムメッセージをボットからクライアントアプリケーションにダイレクトライン経由で送信するにはどうすればよいですか?

ホットタグ

アーカイブ