检索加载的片段并在其类中执行函数

时间:2018-06-17 10:46:59

标签: android android-fragments

执行http请求并使用接口知道其完整时间

在我的主要活动中,我正在附加我的片段

public class HomeActivity extends SharedBaseActivity implements HomeCategories.OnFragmentInteractionListener,
          onGeneralApiRequest{

      @Override
    protected void onCreate(Bundle savedInstanceState) {
     loadfragment(0)
    }


     void loadFragment(int position) {
      FragmentManager fragmentManager = getSupportFragmentManager();
       FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        HomeCategories categories = new HomeCategories(); ///the fragment
       switch(position){
         case 0:{
            fragmentTransaction.replace(R.id.home_fragment_loader, categories);
            break;
         }
       }
      }


  @Override //this is an overide for the apiresponse callback
public void onApiResponse(JSONObject response) {
    //here am stuck
    //am supposed to call the loaded fragment above and execute a function on the fragment class
}


 }

现在在home类别片段中,我有一个设置数据的方法

setData(DataModel data){
   categories = data; //sets the categories
  }

现在从上面的代码中我想检索加载的片段并在片段上调用方法setData。那就是我有其他片段在交换机案例块中动态加载。 我已将setData方法添加到所有这些(片段)

我的设置的附加信息

对于xml中的id home_fragment_loader,它看起来像

//...other parts of the layout

<ScrollView
    android:layout_width="match_parent"
    android:background="@color/lightgren"
    android:layout_below="@+id/bar_toolbar"
    android:layout_height="match_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/home_fragment_loader"
        ></RelativeLayout>

</ScrollView>

对于onGeneralApiRequest,它是一个位于自己的类

上的接口
public interface OnGeneralApirequest {
   void onApiResponse(JSONObject response);
    void onErrorResponse(VolleyError error);
 }

我已经检查了This question,但它没有显示如何检索加载的片段并在其中执行方法

1 个答案:

答案 0 :(得分:1)

Unsupported ioctl: cmd=0xffffffffc0046209
Unsupported ioctl: cmd=0x40046205
Binder driver could not be opened.  Terminating.

然后你可以使用

进行检索
getSupportFragmentManager().beginTransaction(). 
          replace(R.id.home_fragment_loader, categories, "HomeTag").
          commit();