0

我有一个 TableView,如果单击一个单元格,我将显示一个 DetailView(我正在开始一个新的意图)。在此 DetailView 中,您可以更改数据或添加新数据条目。

因此,我必须将数据解析为新的意图,并在添加数据时通知我的 TableView 以更新 TableView,当然我必须保存数据。

与其他语言相比,将数据解析为意图相当“复杂”,但没有问题。但是如何通知我的 TableView 数据已更改或添加?

在 C++、iOS 或 C# 中,我会使用委托,但 Java 没有委托。那么,Java/Android 的出路是什么?

另一个问题:如果没有简单的方法告诉 TableView 数据已更改,我想将我的数据的 List<> 解析到 DetailView,以便 DetailView 可以处理保存操作。

我真的需要创建自己的 List<> 子类并实现 Parcelable 接口吗?真的没有更简单的方法来实现这一目标吗?

现在我已经实现了 DetailView 来添加一个像这样的新组件:

    ((Button)view.findViewById(R.id.cmdNewMemory)).setOnClickListener(new OnClickListener() 
    {
        @Override
        public void onClick(View v) 
        {
            Intent intent = new Intent(v.getContext(), MemoryDetailsFragmentActivity.class);
// Parse enum to tell the DetailView if new data is to be added or old data is to be changed
            intent.putExtra("MEMORYDETAILSTYPE", (Parcelable)MEMORYDETAILSTYPE.New);
            startActivity(intent);
        }
    });
4

1 回答 1

0

因此,我必须将数据解析为新的意图,并在添加数据时通知我的 TableView 以更新 TableView,当然我必须保存数据。

有几种方法可以将更复杂的数据传递给活动:

  • 如果您的数据由数据库支持,则只需传递标识符
  • 实施Parcelable
  • 实施Serializable
  • 通过静态单例传递数据
  • 通过实例传递数据Application

相关讨论:


更新表格视图的实用方法是重绘它onResume()的包含活动 - 无条件地或例如由新的最后修改日期触发。在一种更复杂的方法中,可以使用它的内置方法(例如insert()remove()在 的情况下ArrayAdapter)修改该表的适配器实现中数据结构的元素,最后调用它的notifyDataSetChanged().

于 2013-11-01T02:18:25.710 回答