2016-07-26 14 views
0

私は、フラグメント(ListView)を含むアクティビティを持っています。このListViewは、ファイル構造(DMSまたはファイルエクスプローラ)を表します。リストアイテムをクリックすると、リストが更新されます(adapter.notifyDataSetChangedなど)。しかし、私はどのようにプレビュアリスト表現に戻ることができますか?フラグメント内のリストビューをナビゲートする方法

答えて

0

ファイルシステムをツリーとして考えると、ソリューションを視覚化するのに役立ちます。ツリーのすべてのノード(ルートの外側)には、親参照と子参照(ノードがリーフではないと仮定)があります。既にこのツリーを下に横断している場合は、ファイルシステムの各要素について何らかの形式の子参照があります。これは、項目をクリックすると、選択したディレクトリ内の要素で更新されるためです。これが当てはまる場合は、あなたが来た親ディレクトリへの参照を追加して、それをソートの戻るボタンにリンクします。親参照が一意であると仮定すると、すなわち、ディレクトリレベルxおよびレベルyが異なる識別子を有する場合、問題はないはずである。

また、ツリーを横切るときに増分して戻ってくるときに増分するカウンタを実装することもできます。これは、ファイルシステムの2つのレベルが同じ識別子を持つ場合に役立ちます。コードなしでは、具体的な実装方法について助言するのは難しいかもしれませんが、主な考え方は変わりません。可能な場合は、システム内の各要素について参照を両方とも保持する必要があります。

注:システムのルート要素の親参照、または葉の「null」子参照を 'null'(または特定の値で確認できます)に格納すると、昇順にならないときがわかりますまたはさらに下降する。これにより、画面上のToastを送信して、ユーザーの行動が無効であることを通知したり、トップに達したときに戻るボタンを削除したりすることができます。

私はこれが幸運に役立つことを望みます。

+0

あなたの答えをありがとう。最後の質問:私のリストビューは断片的です。どのようにしてメインアクティビティに変更をコミットできますか(backButtonメソッドはフラグメントで使用できないため) – San

+0

個人的に、私は、ボタンに戻るボタンとして機能するボタンを想像していました(必ずしもアクションバーの先祖のナビゲーション戻るボタンではありません)。これはLinearLayoutで簡単に行うことができます。構造のトップレベルに達しました。このボタンをクリックすると、ロジックを実行して親参照を見つけ、正しい内容で 'adapter.notifyDataSetChanged'を呼び出すことができます。 – DMP

関連する問題