我有一个从 *.txt 文件中检索数据的表格布局。对于txt文件中的每一行数据,都会有一行数据。
假设我现在 txt 文件中有两行数据,那么将生成两个 tablerows 是有道理的。
然后,我添加了一个 OnLongPressListener,它在调用时会从 txt 文件中删除一行数据。
现在是第一个问题:删除 txt 文件中的数据后,如何刷新我的表格布局以反映该更改?
第二个问题是:在我解决了第一个问题之后,是否有可能制作某种动画,其中一行会淡出或滑出而不是直接消失?
谢谢!
我有一个从 *.txt 文件中检索数据的表格布局。对于txt文件中的每一行数据,都会有一行数据。
假设我现在 txt 文件中有两行数据,那么将生成两个 tablerows 是有道理的。
然后,我添加了一个 OnLongPressListener,它在调用时会从 txt 文件中删除一行数据。
现在是第一个问题:删除 txt 文件中的数据后,如何刷新我的表格布局以反映该更改?
第二个问题是:在我解决了第一个问题之后,是否有可能制作某种动画,其中一行会淡出或滑出而不是直接消失?
谢谢!
不知道你是否还在寻找答案。但我遇到了这个帖子,面临着同样的问题。再加上我被迫使用的事实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);
通常在onCreate()中,我们使用文本显示 UI,尝试将构成 UI 的代码放在私有方法中,例如 setUpTabView()并尝试从 onCreate 调用它,甚至尝试调用这个setUpTabView()文本改变了。我在网格视图中做的这种方法。工作得很好......!
为什么不使用 aListView
代替?在使用 MVC 模型时,它可以让您更好地控制数据集与View
. 所以你可以有一个扩展的类BaseAdapter
。此类将您的数据绑定到View
并且此类也有一个方法:notifyDataSetChanged()
这应该可以解决您的问题。
您可能会发现notifyDataSetChanged 示例和customListView很有帮助。
如果您需要进一步的帮助,请告诉我。