【问题标题】:How to add an item from the Activity in ListFragment?如何从 ListFragment 中的 Activity 添加项目?
【发布时间】:2014-08-09 03:49:17
【问题描述】:

如何在ListFragment的Activity中添加一个item?

public class LoadObjects extends ListFragment 
{

    String data[] = new String[] { "one", "two", "three", "four" };

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                getActivity(),
                android.R.layout.simple_list_item_1,
                data);
        setListAdapter(adapter);
    }
}

如何在这个 FragmentList 中上传 Activity 的菜单项?请给出示例或链接。

【问题讨论】:

  • 当您说菜单项时,您是指应用程序菜单中的 MenuItem 吗?如果是这样,您为什么要将它们放在 ListFragment 中?
  • 你误会了。我有一个服务器,他在 MyActivity 中加载数据。下载的数据如何添加到 ListFragment 中? (字符串)

标签: java android fragment


【解决方案1】:

将您的适配器保存为实例变量,以便您可以从任何地方引用它。然后你可以从你的活动中添加项目。

public class LoadObjects extends ListFragment 
{

    String data[] = new String[] { "one", "two", "three", "four" };
    public ArrayAdapter<String> mAdapter;

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        mAdapter = new ArrayAdapter<String>(
                getActivity(),
                android.R.layout.simple_list_item_1,
                data);
        setListAdapter(mAdapter);
    }
}

然后要从您的活动中更新 ListFragment 的 ListView,请执行以下操作:

FragmentManager fManager = getFragmentManager();
LoadObjects frag = (LoadObjects) fManager.findFragmentByTag("listFragment");
if (frag != null) {
    frag.mAdapter.addAll(youNewData);
}

当然要注意,在创建 LoadObjects 片段时,您需要为它设置一个标签,如下所示:

LoadObjects frag = new LoadObjects();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.add(R.id.fragment_container, frag, "listFragment");
transaction.commit();

【讨论】:

  • public Fragment getItem(int position) { switch (position) { case 0: { LoadObjects frag = new LoadObjects(); FragmentTransaction 事务 = getFragmentManager().beginTransaction(); transaction.add(R.layout.load_objects, frag, "listFragment");事务.commit();返回碎片;案例一:返回新的 AddObject(); } }
  • 跑步时起飞((请帮忙
  • Activity 使用 SectionsPagerAdapter
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多