ユーザ用ツール

サイト用ツール


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

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
dialogfragmentを使ったカスタムダイアログ [2015/02/25 11:01]
sou [親Activityにコールバックを返す]
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は不要です。
  
   * ダイアログを終了する   * ダイアログを終了する
ライン 52: ライン 52:
  
  
-===== ダイアログの表示 ===== +===== Dialogの表示 ===== 
-タグやリクエストコードなどonActivityResultやDialog側でも使用するので、定数化しておいたほうが良さそうです+ActivityからFragmentDialog#​show()で表示できます。第2引数にタグを設定することも出来ます。\\ 
 +タグやリクエストコードは定数化しておいたほうが良さそう。
  
  FragmentManager manager = getFragmentManager();​  FragmentManager manager = getFragmentManager();​
ライン 71: ライン 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を使ったカスタムダイアログ.1424829673.txt.gz · 最終更新: 2015/02/25 11:01 by sou