いくつかの背景: 「データベースの編集」ビューを作成してから行を再度削除しているプログラムの一部に問題があります。「データベースの編集」ビューが表示するフィールドは、表示されるたびに異なります。編集データベース ビューはテーブル レイアウトであり、データベースの各行はテーブル レイアウトの行です。ユーザーが編集ビューを終了すると、ビューは次回のために行を破棄またはワイプすることになっています。
私の問題は、何を試しても、テーブルレイアウトの行を削除できないことです。関連するコードは次のとおりです。
xml ファイルで tablelayout のハンドルを取得する
setContentView(R.layout.database_entry);
TableLayout editorLayout = (TableLayout)findViewById(R.id.DatabaseLayout);
レイアウトは別のクラスに渡され、そこで次のようにレイアウトに追加されます。
//layout is the tablelayout from earler, passed into this function
TableRow row = new TableRow(contex);
row .setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
//stuff added to the row....
//...
//...
layout.addView(row);
Tablelayout を消去しようとすると、このコードを実行します
TableLayout editorLayout = (TableLayout)findViewById(R.id.DatabaseLayout);
editorLayout.removeAllViews();
何をしても、次回コードを編集するためにボタンを押すと、前の行と追加された新しい行が表示されます。それらはテーブルから削除されません。エラー メッセージや有用なデバッグ情報は表示されません。機能していないだけです。
私はしばらくこれに苦労しました。tablelayout(xmlファイルなし)を動的に作成しようとし、インデックスを使用して各行(または1行のみ)を削除しようとしました。Hierarchy Viewer を使用して、すべてがそのテーブルレイアウトの子であることを確認しました (そうです)。誰かが洞察を持っているなら、それは大歓迎です。