2013-12-24 22 views
-1

我正在使用此代碼來讓用戶評價我們的應用程序。問題是,我無法找到放置此代碼的位置,以便當用戶通過按下按鈕退出應用程序時,會出現一個對話框,提示用戶對我們的應用程序進行評分。以下是代碼:在後退按鈕上按價格應用程序

AlertDialog.Builder alert = new AlertDialog.Builder(FrontPage.this); 
alert.setTitle("Rate Us:"); 
alert.setPositiveButton("Yes", new OnClickListener() { 

    @Override 
    public void onClick(DialogInterface dialog, int which) { 

     Intent i = new Intent(Intent.ACTION_VIEW); 
     i.setData(Uri.parse("market://details?id=" + getPackageName())); 
     startActivity(i); 
    } 
}); 

alert.setNegativeButton("No", new OnClickListener() { 

    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     // TODO Auto-generated method stub 
    } 
}); 
alert.create(); 
alert.show(); 
+0

添加在 「onBackPressed()」 你的活動驗證碼。 –

回答

1

只要複製粘貼到您的Java類

@Override 
public void onBackPressed() { 

    AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); 
    alert.setTitle("Rate Us:"); 
    alert.setPositiveButton("Yes", new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 

      Uri uri = Uri.parse("market://details?id=" + getPackageName()); 
      Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri); 
      try { 
       startActivity(goToMarket); 
      } catch (ActivityNotFoundException e) { 
       startActivity(new Intent(
         Intent.ACTION_VIEW, 
         Uri.parse("http://play.google.com/store/apps/details?id=" 
           + getPackageName()))); 
      } 

      dialog.dismiss(); 
      finish(); 
     } 
    }); 

    alert.setNegativeButton("No", new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
      finish(); 
     } 
    }); 
    alert.create(); 
    alert.show(); 

} 
2

覆蓋您的Activity中的onBackPressed()方法並將此代碼放在那裏。不要致電super.onBackPressed(),因爲它只是完成活動。並在按鈕點擊對話框或點擊兩次按鈕之後完成活動。並且在完成對話框中的活動時要小心。首先關閉對話框,然後撥打finish()。提早完成活動解僱對話框之前會拋出異常

2

試試這個:

@Override 
public void onBackPressed() { 
    AlertDialog.Builder alert = new AlertDialog.Builder(FrontPage.this); 
    alert.setTitle("Rate Us:"); 

    alert.setPositiveButton("Yes", new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 

      Intent i = new Intent(Intent.ACTION_VIEW); 
      i.setData(Uri.parse("market://details?id=" + getPackageName())); 
      startActivity(i); 
     } 
    }); 

    alert.setNegativeButton("No", new OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
     } 
    }); 
    alert.create(); 
    alert.show(); 
} 

希望這有助於。

+0

Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(「market:// details?id =」+ getPackageName())); startActivity(i); – user3080161

+0

這3行是正確的? – user3080161

+0

根據我這應該工作。如果您有任何問題,請讓我知道,我有評分對話框的示例代碼。 –

2

您需要將代碼放在onBackPressed()方法中。事情是這樣的:

public static final String PACKAGE_NAME = "yourPackageName"; 

public void rate() 
{ 
    new AlertDialog.Builder(FrontPage.this) 
    .setMessage("Rate Us:") 
    .setCancelable(true) 
    .setNegativeButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { 
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + PACKAGE_NAME))); 
    }}).setNeutralButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { 
      finish(); 
    }}).show(); 
} 

public void onBackPressed() 
{ 
    rate(); 
} 
相關問題