gpt4 book ai didi

android - 通过 Retrofit 获取 Fragment 中的数据

转载 作者:行者123 更新时间:2023-11-29 23:24:56 26 4
gpt4 key购买 nike

在这个问题中我想从我的 API 获取数据

我从 Retrofit 中获取数据

我想在 fragment 选项卡的 RecyclerView 中显示数据,但如何将数据从 Activity 发送到 fragment

这就是我尝试过的

Retrofit 调用为我提供了我的帖子的 ArrayList

getMainApp().swiftAPI.getPosts().enqueue(object : Callback<ArrayList<Post>>{
override fun onFailure(call: Call<ArrayList<Post>>?, t: Throwable?) {
Toast.makeText(this@DashboardActivity, t?.message, Toast.LENGTH_SHORT)
}

override fun onResponse(call: Call<ArrayList<Post>>?, response: Response<ArrayList<Post>>?) {
if (response?.isSuccessful!!){

}
}

页面 fragment

val rootView = inflater.inflate(R.layout.fragment_page, container, false)
val video_recyclerview = rootView.findViewById(R.id.pages_rcv) as RecyclerView // Add this
video_recyclerview.layoutManager = LinearLayoutManager(activity)
video_recyclerview.adapter = PagesAdapter()
return rootView

我想知道是否有任何方法可以将 ArrayList 发送到 fragment ,因为我的数据在 ArrayList 中 As shown in Picture

最佳答案

您可以在您的 Activity 中定义一个接口(interface),让 fragment 实现该接口(interface)。你可以在我的 github 上关注这个例子:ActivityToFragmentCommunication

基本上,在您的 Activity 中定义:

  public interface DataLoadedListener {
public void onDataLoaded(ArrayList<Post> posts);
}

然后,让您的 fragment 实现如下接口(interface):

public class ExampleFragment extends Fragment implements MainActivity.DataLoadedListener {

// your fragment code
}

最后在您的 Activity 的 onCreate() 方法中:

// Create new fragment and transaction
mExampleFragment = new ExampleFragment();
// setting mExampleFragment as data load listener
mDataLoadedListener = (DataLoadedListener) mExampleFragment;
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack if needed
transaction.replace(R.id.flContainer, mExampleFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();

// load data after click
btLoadData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
loadData();
// notify attached fragment
mDataLoadedListener.onDataLoaded(myStrings);
}
});

关于android - 通过 Retrofit 获取 Fragment 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53740906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com