我有一个包含项目类别的列表视图.当我在列表上按类别标题时,它将显示另一个包含所选类别内项目的列表视图.
我正在通过使用ListFragment.我是否必须启动一个新活动并按意图一起传递类别ID?
这是我的类别的ListFragment:
public class categoryFragment extends ListFragment implements OnItemClickListener { @OverrIDe public voID onActivityCreated(Bundle savedInstanceState) { getListVIEw().setonItemClickListener(this); } @OverrIDe public voID onItemClick(AdapterVIEw<?> adapterVIEw, VIEw vIEw, int i, long l) { // what to do here }}
我要在onItemClick中添加什么以转到“项目列表”?我需要使用另一个ListFragment还是仅使用常规ListActivity?
如何从解析的JsON检索类别ID并将其传递给列表项?
编辑:我使用Volley解析JsON.我正在考虑在布局中为类别ID创建一个不可见的TextVIEw,以便可以从那里拉出它.那可能吗?
解决方法:
让您的FragmentActivity实现一个具有categorySelected(int categoryID)方法的接口.
在categoryOvervIEwFragment内,当您选择一个类别时,您将其称为:
@OverrIDepublic voID onItemClick(AdapterVIEw<?> adapterVIEw, VIEw vIEw, int i, long l) { ((categorySelectedListener)getActivity()).categorySelected(i);}
然后,在活动中实现categorySelected并将总览片段替换为categoryFragment.
创建类别片段时,将类别ID设置为参数.最好使用newInstance pattern设置setArguments().
要将类别概述列表片段替换为类别详细信息片段,请使用FragmentManager
至beginTransaction()
,然后选择replace()
.
假设类别概述片段是动态添加的,而不是在XML中使用如下代码:
categoryFragment newFragment = categoryFragment.newInstance(categoryIDSelected);FragmentTransaction transaction = getFragmentManager().beginTransaction();transaction.replace(R.ID.fragment_container, newFragment);transaction.addToBackStack(null);transaction.commit();
如果类别列表片段以XML添加,则需要删除该类别并将其更改为FrameLayout,然后在代码中动态添加该片段.
总结以上是内存溢出为你收集整理的java-Android-将值从ListFragment传递到另一个ListFragment全部内容,希望文章能够帮你解决java-Android-将值从ListFragment传递到另一个ListFragment所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)