You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现筛选:点击BlankFormList Activity表单时仅在InsctanceChooserList Activity显示对应条目

实现表单条目筛选功能的步骤

1. 在BlankFormList Activity中传递表单标识

当用户点击列表里的某一表单时,先获取该表单的唯一标识(比如表单ID、表单名称),再通过Intent把这个标识传递给InstanceChooserList Activity:

// BlankFormList中的列表点击事件处理
listView.setOnItemClickListener((parent, view, position, id) -> {
    Form selectedForm = formList.get(position);
    Intent intent = new Intent(BlankFormList.this, InstanceChooserList.class);
    // 传递表单唯一标识,这里以表单ID为例
    intent.putExtra("SELECTED_FORM_ID", selectedForm.getId());
    startActivity(intent);
});

2. 在InstanceChooserList Activity中接收参数并筛选数据

Activity启动后,先拿到Intent里的表单标识,再对原有实例数据列表进行筛选,只保留对应表单的条目:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_instance_chooser_list);
    
    // 获取传递过来的表单ID
    String selectedFormId = getIntent().getStringExtra("SELECTED_FORM_ID");
    
    // 假设原有实例数据列表为instanceList
    List<Instance> filteredList = new ArrayList<>();
    for (Instance instance : instanceList) {
        if (selectedFormId.equals(instance.getFormId())) {
            filteredList.add(instance);
        }
    }
    
    // 把筛选后的列表设置给适配器,更新UI展示
    InstanceAdapter adapter = new InstanceAdapter(this, filteredList);
    listView.setAdapter(adapter);
}

3. 可选优化方案

  • 如果数据量较大,建议直接在数据源层面(比如数据库查询)筛选,减少内存遍历开销:
    // SQLite查询示例:直接添加表单ID筛选条件
    Cursor cursor = db.query("instance_table", 
                            null, 
                            "form_id = ?", 
                            new String[]{selectedFormId}, 
                            null, 
                            null, 
                            null);
    
  • 用Java 8 Stream简化内存筛选代码:
    List<Instance> filteredList = instanceList.stream()
        .filter(instance -> selectedFormId.equals(instance.getFormId()))
        .collect(Collectors.toList());
    

内容的提问来源于stack exchange,提问作者Nikhil Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:55:11