java - 使用 fragment 的最佳实践

标签 java android android-fragments

我对 Android 非常陌生。我有几个按钮,当我单击它们时,我会得到一些项目列表。与单击的按钮无关, ListView 完全相同,唯一改变的是远程 url调用元素收费。有没有比使用 fragment 更好的方法来做到这一点?或者是否可以添加一些url每个适配器的 getView 方法中的参数(我为每个 fragment 使用一个适配器)

最佳答案

这取决于。

您无法直接将其他参数传递给 Adapter.getView(),但您可以将其他信息(例如 URL 或从该 URL 加载的项目)作为构造函数参数传递给您的 Adapter 子类,并且从 getView() 的实现中访问它。

根据您提供的有限详细信息,我建议使用单个 Fragment 类来处理列表的显示,并将用于加载数据的 URL 作为参数传递给 fragment ,如下所示:

public class MyListFragment extends Fragment {

  private static String ARG_URL = "url";

  public static MyListFragment create(String url) {
    Bundle args = new Bundle();
    args.putString(ARG_URL, url);
    MyListFragment fragment = new MyListfragment();
    fragment.setArguments(args);
    return fragment;
  }

  ...
}

然后,该 fragment 可以处理异步加载数据和列表显示。

就最佳实践而言,我倾向于将创建/参数传递部分隐藏在像这样的静态工厂方法中,因此想要使用 fragment 的代码不需要知道参数是如何精确编码的一个 Bundle,如果需要,您可以处理参数、默认值等的验证。

关于java - 使用 fragment 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21818353/

相关文章:

android - .getSupportActionBar 在 Fragment 中不可用;解决方法导致旋转时出现 NullPointerException

android - fragment 托管另一个 fragment ,如何引用宿主 fragment ?

java - 使用寻路时找到最接近目的地的物体

java - 来自 JTextField 的鼠标事件不会传播

java - Spring 自动接线

java - NoSuchMethodError:将 Firebase 与 App Engine 应用集成时

android - 使用 Intent 将值(value)从一项 Activity 传递到另一项 Activity

android - SDL 下 Android OpenGL ES 渲染中不确定的不需要的额外三角形

java - Android Google Map Utils聚类距离

android - 如何访问 fragment 中的 getSupportFragmentManager 或 SupportFragmentManager