0

我正在使用ViewPager,即在MainActivity類和Viewpager類擴展片段之上。如何將「結果」從一個類返回給定義的類?

的問題是,通常當我們需要一個類來返回一些result然後同時傳遞我們使用startActivityforresult(intent,int)intent因此它通過在secondactivity捕獲從那裏它被稱爲類的結果。

但是,就像我跟viewpager上在MainActivity的頂部工作,我使用floating action button,當我點擊按鈕,打開它返回的結果在MainActivity而不是viewpager類的第二個活動。

所以我的問題是如何將第二個活動的結果傳遞給我想要的類?

更新:: MainActivity.java 這是它是使用意圖以及從第二活動類接收結果我的主類ActivityTwo

我在這裏做的是

startActivityForResult(intent,1); 
public void onActivityresult(i,j,intent){MyFragment fragment; 
fragment.onActivityReusult(i,j,intent);//Here i have passes the values  
received by this class to the fragment class where i need the values but it's not working 
} 
+0

你可以調用視圖頁面適配器從您的主要活動,這將調用片段傳遞數據下來 –

+0

是因爲我創建和呼叫我的主要活動 – silverFoxA

+0

內的傳呼機類,所以在onActivityResult結果可以調用viewPageAdapter.passData(我的數據)並將其傳遞給該片段。並在您的適配器上創建傳遞數據 –

回答

0

你可以使用一個Bundle。 看看這個話題:Bundle

bookDescFragment = new BookDescFragment(); 
Bundle args = new Bundle(); 
args.putInt(BookDescFragment.MyVariabl, VariableValue); 
myFragment.setArguments(args); 
0

要做到這一點,最好的方法是創建一個Interface一個method。然後片段執行這個Interface。之後,您可以在onActivityResult中將此稱爲method。你只得到了onActivityResult所需片段,並從其Interface

編輯致電method

接口例如:

public interface Interface_example { 

    public void onActivityResult(); 

} 

片段例如:

public class Fragment_example extends Fragment implements Interface_example { 

    @Override 
    public void onActivityResult() { 

     //Here you can do whatever you want 

    } 

} 

活動例如:

public class Activity_example extends FragmentActivity { 

    private ArrayList<Fragment> mFragmentList; 
    private ViewPager mViewPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_example); 

     mFragmentList = new ArrayList<Fragment>(); 
     mFragmentList.add(new Fragment_example()); 

     mViewPager.setAdapter(new SimpleTabPagerAdapter(
       getSupportFragmentManager(), mFragmentList)); 

    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 

     Fragment _fragment = mFragmentList.get(mViewPager.getCurrentItem()); 

     if(_fragment instanceof Fragment_example){ 

      // This line will call that method previously created 
      ((Fragment_example) _fragment).onActivityResult(); 

     } 

    } 

} 
+0

先生您可以請描述一個教程鏈接或示例代碼或什麼 – silverFoxA

+0

我編輯我的答案。看看 –

+0

請檢查我更新的答案 – silverFoxA

相關問題