0

最近、すべての助けをいただきありがとうございます!もう一つの質問!Android - 大量のレイアウトファイルがなくてもデータを表示する最適な方法

私が構築しているアプリでは、現在10のオプションを選択できる拡張可能なlstviewのレイアウトファイルがあります。これらのオプションのいずれかを選択すると、別の4つのオプションが選択されます。週を選ぶことから、さらに3つのオプションがあります。これらの3つのオプションのそれぞれは、現在、各行に約10行のチェックボックスとテキストビューを持つリストビューを持つ新しいアクティビティを開きます。

30のレイアウトファイルを作成するのではなく、おそらくアプリをクラッシュさせるでしょう(アプリをクラッシュさせるにはどれくらいの数のファイルがあるかわかりません)。私はそれを見て、私が探しているものを見つけることができません。私はsqliteについて少しは読んだことがありますが、テーブルの別の部分を呼び出すために別々のレイアウトファイルを必要としませんか?リストビューで単一のレイアウトファイルを作成し、展開可能なリストビューでクリックがどこから来たのかに応じて、sqliteから別のデータでlistviewを埋め込む方法はありますか?

たとえば、拡張可能リストビューでワークアウト29をクリックしてから週1をクリックし、次に1日をクリックします。その単一レイアウトでsqlite dbからデータをロードできますか。その後、彼らが戻って、トレーニングワークアウト30、2週間目、3日目をクリックすると、その同じレイアウトはdbとは異なる情報をロードしますか?

は私もまだ

おかげで再びダブル拡張可能なリストビューを作成する方法を見つけようとしています!

+0

アプリをクラッシュさせるには何千ものレイアウトファイルが必要です。わずか30のアプリはまだかなり小さいです。 –

答えて

1

メモリにデータを保持する予定がない限り、すべてのデータにSQLiteデータベースを使用する必要があります。単純なビューを作成して再利用してください。あなたがしなければならないことは、あなた自身のアダプタを作成することです(ExpandableリストビューのためのBaseExpandableListAdapterと通常のリストビューのためのBaseAdapterから拡張します)。そして、必要なデータをSQLite databseテーブルに問い合わせます。

Stringアイテムのみを表示する場合は、ArrayAdapterを直接拡張してから、通常リストに表示するアイテムの配列を指定できます。

クラッシュするまで、30以上のレイアウトファイルを持つアプリがたくさんあります。さらに、多くのビューの読み込みを開始した場合でも、Androidは自動的にビューの破損を開始するため、メモリが不足して起動が必要になったときに再作成されます。

+0

ありがとう!私はすべてのデータが収集された前の数値の計算である単一行の文字列なので、データベースがなければ大丈夫だろうと思います!ありがとう! – LBJ33

2

これは非常に単純です。リストビュー用のDataAdapterを作成するだけです。次に、onclickリスナーにバインドするリストビューアイテムを追加し、そのリストをクリアして新しいエレメントを追加することができます。役に立つリンクがあります。 https://guides.codepath.com/android/Using-an-ArrayAdapter-with-ListView

+0

ありがとうございました!私はすべてのデータが収集された前の数値の計算である単一行の文字列なので、データベースがなければ大丈夫だろうと思います!ありがとう! – LBJ33

+0

子供がいるときはビューが非常に重いので、アプリの読み込みに時間がかかることがあります。あなたが最小の子供のビューを持っているなら、それはより速くなります。そのため、1次元のリストビューを作成してクリックしてクリアするのは、アンドロイドがすべてを再描画する組み込み関数を呼び出す巨大なツリーを持たないためです。もし私が子供を変えようとするならば、それはその子供とその兄弟姉妹のすべての親を本質的に再描画します。 – JQluv

関連する問題