0

ダイアログをテーマにしたアクティビティがあります (はい、このアクティビティでライブラリが使用されているため、ダイアログフラグメントやその他のタイプのダイアログではなく、アクティビティである必要があります) とにかく、ユーザーが持っていない場合に API がクライアントに応答を送信するときデフォルトの画像このアクティビティをテーマにしたダイアログがポップアップし、ユーザーが写真をアップロードするまで、このアクティビティをテーマにしたダイアログをキャンセルできないようにしたいと思います。現在、アクティビティをテーマにしたダイアログは小さく、ユーザーがアクティビティ ダイアログの外側をクリックしてキャンセルすると、背景が透明になります。

ユーザーが onTouchOutside または押し戻したときに、アクティビティをテーマにしたダイアログがキャンセルされないようにする良い方法はありますか?

4

3 に答える 3

2

実際に持っているのは (ダイアログのように見えても) アクティビティであるためsetFinishOnTouchOutside(false)、バックグラウンド アクティビティがクリックされたときにアクティビティを開いたままにしておく場合は、アクティビティから呼び出す必要があります。

  Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_yoptions);
    this.setFinishOnTouchOutside(false);
}

編集: これは Android API レベル 11 以降でのみ機能します

また、戻るボタンが押されないように、super() を使用せずに onBackPressed() メソッドをオーバーライドします。

これが役立つことを願っています~~

于 2013-12-19T11:03:58.470 に答える
1

2 つの方法があります。ただし、API 11以降は機能します。

  1. テーマの使用。Android はテーマの属性を提供します。( http://developer.android.com/reference/android/R.attr.html#windowCloseOnTouchOutside )

  2. コードの使用。コードからこの属性を設定することもできます。( http://developer.android.com/reference/android/app/Activity.html#setFinishOnTouchOutside(boolean)

于 2013-09-22T21:57:08.080 に答える