当前位置: 首页 > 面试题库 >

Android-将值从ListFragment传递到另一个ListFragment

傅翰池
2023-03-14
问题内容

我有一个包含项目类别的列表视图。当我在列表上按类别标题时,它将显示另一个包含所选类别内项目的列表视图。

我通过使用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内,当您选择一个类别时可以调用此方法:

@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
    ((CategorySelectedListener)getActivity()).categorySelected(i);
}

然后,在活动中实施categorySelected并将总览片段替换为CategoryFragment

创建时,CategoryFragment将类别ID设置为参数。最好将newInstance模式用于setArguments()

要将类别概述列表片段替换为类别详细信息片段,请使用FragmentManagerto
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然后在代码中动态添加该片段。



 类似资料:
  • 问题内容: 我有两个组件SideNav和Dashboard(两个位于不同的js文件中)。SideNav将具有选择框作为过滤器。我必须将一个数组从仪表板组件传递到补充工具栏组件。该数组必须作为选择框的值(在sidenav组件内部)给出。 PS: 如果在两个不同的JS文件中定义了两个不同的组件类,情况将会怎样。例如HomeComponent / Home.js->父组件Dashboard / Dash

  • 问题内容: 我有两个 newAccessLevels.java ,它有两个按钮“ Level 1”,“ Level 2”和 newAccessPanel.java。 我需要获取用户选择“ 1或2”的级别,以便可以在标题中显示它。 accessPanel.java, 例如访问级别1,访问级别2。如何完成此操作。下面是示例代码,因此,如果单击级别1,则将打开标题为* ACCESS LEVEL 1 的n

  • 问题内容: 我正在使用Swift,在tableview的didSelectRowAtIndexPath方法中出现错误。我想将值传递给另一个视图控制器,即“ secondViewController”。这里,EmployeesId是一个数组。相关代码如下: 但是我收到此错误:致命错误:展开一个Optional值时意外发现nil。 任何帮助将不胜感激。 问题答案: 这是一个有两个假设的一般解决方案。首

  • 我有一个托管bean,它有以下方法: 因此,方法将打开一个对话框,并传递给它两个参数(和)。 然后命令按钮将从调用方法: 但我在行中得到了一个NullPointerException: 所以我在这一行上附加了一个dubugger,我得到了这个: 您可以注意到,变量具有空值,而具有字符串值。

  • 问题内容: 我正在尝试从一个发送客户类的对象,Activity然后在另一个对象中显示它Activity。 客户类的代码: 我想将其对象从一个对象发送Activity到另一个对象,然后在另一个对象上显示数据Activity。 我该如何实现? 问题答案: 一种选择是让你的自定义类实现该接口,然后可以使用该方法的变体在意图中额外传递对象实例。 伪代码:

  • 问题内容: 我有两种形式,我需要将值从form1.textbox1传递给form2.variable 表格1: `和Form2: 当我在Form2上单击“保存”并打开调试时,我会看到“ ed = 3; en = 5”,但是当我在Form1上单击“打开form2”并打开调试时,我会看到“ Ed = null; En = null;”。并在文本框中显示一个没有值的空白表格。请帮助。 问题答案: 您创建