Java Android:删除一行后如何刷新tablelayout?
我有一个从*.txt文件检索数据的tablelayout。 对于txt文件中的每一行数据,将有一行数据 假设我现在在txt文件中有两行数据,有必要生成两行tablerows 然后,我添加了一个OnLongPressListener,当调用它时,它将从txt文件中删除一行数据 现在是第一个问题:删除txt文件中的数据后,如何刷新tablelayout以反映该更改 第二个问题是:在我解决了第一个问题后,是否有可能出现某种动画,其中一行将淡出或滑出,而不是直接消失Java Android:删除一行后如何刷新tablelayout?,java,android,refresh,tablelayout,tablerow,Java,Android,Refresh,Tablelayout,Tablerow,我有一个从*.txt文件检索数据的tablelayout。 对于txt文件中的每一行数据,将有一行数据 假设我现在在txt文件中有两行数据,有必要生成两行tablerows 然后,我添加了一个OnLongPressListener,当调用它时,它将从txt文件中删除一行数据 现在是第一个问题:删除txt文件中的数据后,如何刷新tablelayout以反映该更改 第二个问题是:在我解决了第一个问题后,是否有可能出现某种动画,其中一行将淡出或滑出,而不是直接消失 谢谢 为什么不改用列表视图?当使用M
谢谢 为什么不改用
列表视图
?当使用MVC模型时,如果数据集绑定到视图
,它将为您提供更好的控制。因此,您可以拥有一个扩展BaseAdapter
的类。该类将您的数据绑定到视图
,并且该类还有一个方法:notifyDataSetChanged()
,这就是解决问题的方法
你可能会发现这很有用
如果你需要进一步的帮助,请告诉我 通常在onCreate()中,我们使用文本显示ui的所有内容,尝试将构成ui的代码放在私有方法中说setUpTabView(),并尝试从onCreate调用它,甚至在文本更改时尝试调用这个setUpTabView()。我在网格视图中使用的这种方法。工作得很好 不确定您是否仍在寻找答案。但我看到这篇文章也面临着同样的问题。再加上我被迫使用
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);
我同意列表是一个更好的方法。一个可能的动画解决方案将更容易找到/创建。好吧,我尝试了你的建议,但几乎不可能(或者我只是不知道如何正确地做)将我的设置转换为listview。我有一个电阻器的背景图片和四个文本视图(每个没有文本,但背景颜色不同)。你看到了吗?我尝试应用listview并定制自己的simple_list.xml,使其具有电阻器的背景。但我不知道如何在listview的一行中添加四个textview。我不知道您的四个文本视图将如何显示,但教程中的row.xml已经有两个文本视图,所以您只需再添加两个文本视图,这不是很容易吗?接受帮助您的答案,这样答案就可以知道什么对您有效。快乐编码!你需要接受对你有用的答案,这样下次你提问时,人们会毫不犹豫地发布答案!