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

相关问题