レビューをお願いするのに、
必要なものを作成しました。
サンプルなので、あとはカスタムしてください。
必要な処理
・ダイアログ
・GooglePlayに飛ばす処理
コード
ダイアログには、ボタン3つ用意しました。
「レビューをする」「あとでレビューをする」「レビューをしない」の3つです。
処理では、「レビューをする」はアプリページに飛ばします。
他2つはダイアログを閉じるだけです。
実際に作成するなら、sharedPreferenceに保存するなりして、
「あとでレビューをする」と「レビューをしない」を設定すればいいかなと思います。
review_dialog_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="このアプリのレビューを\nお願いできますでしょうか?"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/black" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/darker_gray" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="240dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp">
<Button
android:id="@+id/top_button"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_above="@+id/center_button"
android:layout_marginBottom="10dp"
android:background="@color/lightgrey"
android:text="レビューをする。"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/center_button"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:background="@color/lightgrey"
android:text="あとでレビューをする。"
android:textAppearance="?android:attr/textAppearanceMedium" />
<Button
android:id="@+id/bottom_button"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_below="@+id/center_button"
android:layout_marginTop="10dp"
android:background="@color/lightgrey"
android:text="レビューをしない。"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
</LinearLayout>
ReviewDialogFragment.java
public class ReviewDialogFragment extends DialogFragment {
public interface ReviewDialogFragmentListener extends Serializable {
void onDoReviewButtonClick();
}
private ReviewDialogFragmentListener listener;
public static ReviewDialogFragment newInstance(ReviewDialogFragmentListener listener) {
ReviewDialogFragment dialogFragment = new ReviewDialogFragment();
Bundle args = new Bundle();
args.putSerializable("listener", listener);
dialogFragment.setArguments(args);
return dialogFragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(getArguments() != null) {
listener =
(ReviewDialogFragmentListener)getArguments().getSerializable("listener");
}
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Activity activity = getActivity();
AlertDialog.Builder dialog = new AlertDialog.Builder(activity);
View dialogView =
LayoutInflater.from(activity).inflate(R.layout.review_dialog_layout ,null);
Button topButton =
dialogView.findViewById(R.id.top_button);
Button centerButton =
dialogView.findViewById(R.id.center_button);
Button bottomButton =
dialogView.findViewById(R.id.bottom_button);
topButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
listener.onDoReviewButtonClick();
}
});
centerButton.setOnClickListener(cancelClickListener);
bottomButton.setOnClickListener(cancelClickListener);
dialog.setView(dialogView);
setCancelable(false);
return dialog.create();
}
private View.OnClickListener cancelClickListener =
new View.OnClickListener() {
@Override
public void onClick(View view) {
dismiss();
}
};
}
MainActivityは、ダイアログの「レビューする」をクリックしたときのコールバックを受け取り、
アプリのページに飛ばすように処理をしています。
MainActivity.java
public class MainActivity extends AppCompatActivity
implements ReviewDialogFragment.ReviewDialogFragmentListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ReviewDialogFragment reviewDialogFragment =
ReviewDialogFragment.newInstance(this);
reviewDialogFragment.show(getFragmentManager(), "ReviewDialogFragment");
}
@Override
public void onDoReviewButtonClick() {
Intent intent = new Intent(
Intent.ACTION_VIEW,
Uri.parse("https://play.google.com/store/apps/details?id=com.fureate.calculator"));
startActivity(intent);
}
}
完成したスクリーンショットです。
「レビューをする」をクリック後です。
以上です。