Java Android:删除一行后如何刷新tablelayout?

Java Android:删除一行后如何刷新tablelayout?,java,android,refresh,tablelayout,tablerow,Java,Android,Refresh,Tablelayout,Tablerow,我有一个从*.txt文件检索数据的tablelayout。 对于txt文件中的每一行数据,将有一行数据 假设我现在在txt文件中有两行数据,有必要生成两行tablerows 然后,我添加了一个OnLongPressListener,当调用它时,它将从txt文件中删除一行数据 现在是第一个问题:删除txt文件中的数据后,如何刷新tablelayout以反映该更改 第二个问题是:在我解决了第一个问题后,是否有可能出现某种动画,其中一行将淡出或滑出,而不是直接消失 谢谢 为什么不改用列表视图?当使用M

我有一个从*.txt文件检索数据的tablelayout。 对于txt文件中的每一行数据,将有一行数据

假设我现在在txt文件中有两行数据,有必要生成两行tablerows

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

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

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


谢谢

为什么不改用
列表视图
?当使用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已经有两个文本视图,所以您只需再添加两个文本视图,这不是很容易吗?接受帮助您的答案,这样答案就可以知道什么对您有效。快乐编码!你需要接受对你有用的答案,这样下次你提问时,人们会毫不犹豫地发布答案!