私はこれが以前にすでに尋ねられたことを知っています、しかし他の応答のどれも私を助けなかったので、私は自分自身に尋ねます...
ユーザーがテーブルを動的に更新できるようにしたいので、既存のすべての行をTableLayout
から削除しようとしています。他の提案では、すべての子ビューを削除することになっているremoveAllViews()
の使用が推奨されていますが、これにより、同じLinearLayout
内の他のテーブルから行が削除されます(複数のテーブルを持つ線形レイアウトがあります)。
助言がありますか?
クリアしたい特定のLinearLayout
ではなく、全体的にTableLayout
をremoveAllViews()
と呼んでいるようです。次のようなものがあることを再確認してください。
myLinearLayout.someTableView.removeAllViews()
各TableRowでremoveAllViews()を呼び出す必要があります。
int count = table.getChildCount();
for (int i = 0; i < count; i++) {
View child = table.getChildAt(i);
if (child instanceof TableRow) ((ViewGroup) child).removeAllViews();
}
yourTableView.removeViews(startIndex, count)
startIndexは、削除を開始する場所の整数値です。ヘッダーがあり、それを削除したくない場合は、位置1から開始します。それ以外の場合は、0から開始します。count削除する行の数です。