3

我有一个从 *.txt 文件中检索数据的表格布局。对于txt文件中的每一行数据,都会有一行数据。

假设我现在 txt 文件中有两行数据,那么将生成两个 tablerows 是有道理的。

然后,我添加了一个 OnLongPressListener,它在调用时会从 txt 文件中删除一行数据。

现在是第一个问题:删除 txt 文件中的数据后,如何刷新我的表格布局以反映该更改?

第二个问题是:在我解决了第一个问题之后,是否有可能制作某种动画,其中一行会淡出或滑出而不是直接消失?

谢谢!

4

3 回答 3

4

不知道你是否还在寻找答案。但我遇到了这个帖子,面临着同样的问题。再加上我被迫使用的事实TableLayout(使用编写的代码量TableLayout很大,这不是我要切换到的ListView)。我最终做的是从TableLayout使用中删除所有视图:

`tableLayout.removeAllViews();`

但是,如果删除后的行数发生巨大变化,那将行不通。我也需要使用处理程序使我的视图无效。这是我的其余代码。

protected static final int REFRESH = 0;

private Handler _hRedraw;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tree_view_activity);

    _hRedraw=new Handler(){
        @Override
        public void handleMessage(Message msg)
        {
            switch (msg.what) {
            case REFRESH:
                redrawEverything();
                break;
            }
        }
    };
    ...
}
private void redrawEverything()
{
    tableLayout.invalidate();
    tableLayout.refreshDrawableState();
}

只剩下一个部分,那就是您向处理程序发送消息以刷新视图的部分。这是它的代码:

_hRedraw.sendEmptyMessage(REFRESH);
于 2012-04-30T09:18:55.190 回答
1

通常在onCreate()中,我们使用文本显示 UI,尝试将构成 UI 的代码放在私有方法中,例如 setUpTabView()并尝试从 onCreate 调用它,甚至尝试调用这个setUpTabView()文本改变了。我在网格视图中做的这种方法。工作得很好......!

于 2011-04-15T20:02:37.203 回答
1

为什么不使用 aListView代替?在使用 MVC 模型时,它可以让您更好地控制数据集与View. 所以你可以有一个扩展的类BaseAdapter。此类将您的数据绑定到View并且此类也有一个方法:notifyDataSetChanged()这应该可以解决您的问题。

您可能会发现notifyDataSetChanged 示例customListView很有帮助。

如果您需要进一步的帮助,请告诉我。

于 2011-04-15T18:07:08.947 回答