2017-04-20 26 views
0

經過多次搜索,我無法解決我的問題。 我從適配器啓動對話框,然後從我的對話框中調用活動(通過意圖)。我想回到我的對話中,並結合我的活動結果。這裏我的代碼:從對話框的意圖Android呼叫活動,然後返回到對話框結果

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

如果不是'Dialog',而是使用了一個以對話框爲主題的'Activity',這將會更簡單。 – 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
相關問題