2017-04-20 19 views
0

多くの検索の後、私は問題を解決できません。 アダプタからダイアログを開始し、私のダイアログから私はアクティビティを(インテントによって)呼び出します。私は私の活動の結果を私のダイアログに戻したいと思います。ここに私のコード:Android Invoiceからアクティビティを呼び出すダイアログからダイアログを呼び出し、結果をダイアログに戻す

final Dialog dialog = new Dialog(MyActivity.context); 
    dialog_actv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      add_dialog.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) 
       {Intent add = new Intent(MyActivity.context,MySecondActivity.class); 
        MyActivity.context.startActivity(add); 

私はダイアログに戻りたいと思います。どのようにできるのか ? ありがとうございます。

+0

これは、「ダイアログ」の代わりにダイアログテーマの「アクティビティ」を使用した方が簡単です。 – CommonsWare

+0

ダイアログをテーマにしたアクティビティはどういう意味ですか?私はこれを使うのを知らない。 – Sandy2626

+0

私は、テーマがダイアログベースのテーマ(例: 'Theme.Material.Dialog')から広がるアクティビティを意味します。視覚的には、ダイアログのように見えます。しかし、プログラミングの観点からは、それは 'Activity'なので、' startActivityForResult() 'のようなものは正常に動作します。 – CommonsWare

答えて

0

の代わりにあなたは以下のような活動からそれを表示することができ、あなたのアダプタからあなたのダイアログを示す:あなたのアダプタで

:あなたの活動で

((YourActivity)mContext).showCustomDialog(); 
In your YourActivity.java 
public void showCustomDialog(){ 
    Intent add = new Intent(MyActivity.context,MySecondActivity.class); 
    startActivityForResult(add); 
} 

があなたの結果を処理し、ダイアログで変更を行います。

あなたのために働くかどうか教えてください。

+0

よろしくお願いします。 – Sandy2626

0

DialogFragmentを使用して、onActivityResultコールバックを上書きして結果を得ることができます。

  • あなたのフラグメントで結果を取得するには、あなたのフラグメントにstartActivityForResult(intent,reqCode)代わりのgetActivity().startActivityForResult(intent,reqCode)を呼び出すことを確認してください。
  • すでにホストアクティビティがonActivityResultをオーバーライドしている場合は、未処理の結果コードに対してsuper.onActivityResultが呼び出されていることを確認してください。
関連する問題