0

私のアプリの機能は、waneloのようなものをモデルにすることができます。

ユーザーは、1 つのアクティビティで購入したいものの検索用語を入力します。その検索語に一致するアイテムのリストが表示されます。したがって、ListViewwill にはItems が含まれます。にItemは多くの属性があり、主なものは次のとおりです。

  • id-Itemデータベース内の の ID に対応
  • date_modifiedItem-が更新されたかどうかを知るためのタイムスタンプ
  • remote_directoryItem-アイコンやその他の画像などの のアセットのベース ディレクトリへの URL 。URL は次のようにフォーマットさhttp://my.domain.com/items/a1bc234d/れます。a1bc234dはランダムに生成され、 によってシードされdate_modifiedます。
  • remote_dir_name- の部分文字列remote_directory。上記の例から、この値は になりますa1bc234d

検索結果のリストから、後で表示する項目をマークできます。これにより、いくつかのことがトリガーされます。

  • まず、ユーザーが「ダウンロード」した s を表すItem別の に を広告したいと思います。ListViewItem
  • Item次に、 のすべてのデータ (説明、すべてのアセット)を実際にダウンロードしたいと思いますremote_directory。これらは、アプリの内部ストレージのフォルダーに保存されますremote_dir_name: /data/data/my.app.package.name/files/a1bc234d/.

これらの「ダウンロードされた」アイテムは、オフライン モードで表示できるようになっています。

この「ダウンロードListView済み」は別のアクティビティに対応し、Item. また、これListViewは編集可能である必要があります。リスト内の を削除して並べ替えることができる必要がありItemます。

最後に、「ダウンロード済み」ListViewは永続的である必要があります。秩序を維持する必要があります。ListView検索結果のは持続する必要はありません。

ダウンロードされる のリストを保存する方法を理解するのに苦労しItemています。"ダウンロード"ListViewは、リスト アイテムがダウンロードされている場合、その進行状況バーをいつ更新するかを知る必要があります。Itemダウンロードが完了するまで行の列を常に更新するため、 をデータベースに保存するのは少しやり過ぎだと思います。これら 2 つの 間でこのダウンロード ステータス情報を渡すにはどうすればよいListViewですか?

4

1 に答える 1

1

ここで全体像を把握していることは完全にはわかりませんが、2つのArrayListフィールドが必要なようです。

List<Item> downloadedItems = new ArrayList<Item>;
List<Item> searchItems = new ArrayList<Item>;

次に、DownloadListView用に独自のカスタムListAdapterを作成し、ListAdapter内で拡張する独自のカスタムdownload_item.xmlを作成する必要があります。あなたの場合、このdownload_item.xmlはテキストビューとプログレスバーで構成されており、コンテンツをラップするために含まれている(または最上位の)レイアウトを設定する必要があるようです。

次に、SearchListViewのオンクリックリスナーで、タップされたアイテムを取得してdownloadedItems ArrayListに追加してダウンロードを開始する関数を呼び出すように設定し、listadapterデータセットを更新して更新するようにします。リスト内のアイテム。

ダウンロードはAsyncTaskにある必要が@Override publishProgress()あり、ダウンロードバーのステータスを更新できるように、この部分を使用する必要があります。

見落としや間違いを許してください、私はただ目が覚めました。

于 2013-01-20T19:37:06.183 に答える