ユーザ用ツール

サイト用ツール


dialogfragmentを使ったカスタムダイアログ

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
dialogfragmentを使ったカスタムダイアログ [2015/02/20 15:53]
sou [DialogFragmentの実装]
dialogfragmentを使ったカスタムダイアログ [2015/02/25 15:30] (現在)
sou [Dialogの表示]
ライン 3: ライン 3:
 表示したいようにxmlを編集して頂ければそのままダイアログとして表示されます。\\ 表示したいようにxmlを編集して頂ければそのままダイアログとして表示されます。\\
 MAX_HEIGHT, MAX_WIDTHを0.9Fにすれば縦横90%の大きさで表示されます。\\ MAX_HEIGHT, MAX_WIDTHを0.9Fにすれば縦横90%の大きさで表示されます。\\
-画像のPopupWinodwのように一枚だけ画像を表示したい。などであれば、ImageViewをnewしてそのままsetContentView()にImageViewを渡してやればxmlは不要です。+画像のPopupWinodwのように一枚だけ画像を表示したい。などであれば、ImageViewをnewしてそのままDialog#setContentView()にImageViewを渡してやればxmlは不要です。
  
   * ダイアログを終了する   * ダイアログを終了する
ライン 51: ライン 51:
   }   }
  
-===== 親Activityにコールバックを返す ===== 
-ここで投げたPendingIntentは親ActivityのonActivityResultで受け取ります。\\ 
-Intent#​putExtra()で値を渡すこともできます。 
  
- +===== Dialogの表示 ===== 
- public void fncCallback(String cb){ +ActivityからFragmentDialog#​show()で表示できます。第2引数にタグを設定することも出来ます。\\ 
-     Intent result ​new Intent(); +タグやリクエストコードは定数化しておいたほうが良さそう。
-     result.putExtra("​callback",​ cb); +
-   +
-     PendingIntent pi getActivity().createPendingResult(getTargetRequestCode(),​ result, +
-             PendingIntent.FLAG_ONE_SHOT);​ +
-     try { +
-         pi.send(getActivity().RESULT_OK);​ +
-     } catch (PendingIntent.CanceledException e) { +
-         e.printStackTrace();​ +
-     } +
-+
- +
-===== ダイアログの表示 ===== +
-タグやリクエストコードなどonActivityResultやDialog側でも使用するので、定数化しておいたほうが良さそうです+
  
  FragmentManager manager = getFragmentManager();​  FragmentManager manager = getFragmentManager();​
ライン 88: ライン 72:
  
  
 +===== Dialogから親Activityにコールバックを返す =====
 +  * Fragment側の実装
 +ここで投げたPendingIntentは親ActivityのonActivityResultで受け取ります。\\
 +Intent#​putExtra()で値を渡すこともできます。
 +
 +
 + public void fncCallback(String cb){
 +     Intent result = new Intent();
 +     result.putExtra("​callback",​ cb);
 +  ​
 +     PendingIntent pi = getActivity().createPendingResult(getTargetRequestCode(),​ result,
 +             PendingIntent.FLAG_ONE_SHOT);​
 +     try {
 +         pi.send(getActivity().RESULT_OK);​
 +     } catch (PendingIntent.CanceledException e) {
 +         e.printStackTrace();​
 +     }
 + }
  
 +  * Activity側の実装
dialogfragmentを使ったカスタムダイアログ.1424415233.txt.gz · 最終更新: 2015/02/20 15:53 by sou