2011-07-14 19 views
2

私はこの問題をしばらく解決しようとしていましたが、私が考えることができるさまざまなGoogle検索をすべて使い果たしました。私はAndroidの初心者ですが、基本のほとんどを理解しています(私は思っています)。とにかく、私はマルチカラムレイアウトスプレッドシートスタイルでデータのリストを表示しようとしています。私はListViewを使用しています。なぜなら、ユーザーが行をクリックするだけで、データをもっと詳細に見ることができるようにする必要があるからです。私はSimpleAdapterを使って完全に動作させていますが、データの量が最大で500エントリまでになることがあるため、遅延ローダーシステムに切り替えて20秒間黒い画面を凝視する必要はありませんでしたすべてがロードされます。私はLazy Loaderの部分で管理できると思いますが、複数列の書式SimpleAdapterからすべてのLazy Loaderの例が使用するArrayAdapterに切り替える方法を理解できません。ArrayAdapterを使用した複数列レイアウトの作成

ここに私のSimpleAdapterコードの例です:

SimpleAdapterアダプタ=新しいSimpleAdapter(へ、からこの、fillMaps、R.layout.grid_item、);

fillMapsは、挿入されるHashMapsのリストです。 'grid_item'は、エントリが挿入されるレイアウトです。 'from'は、使用される列名(あるいはHashMapのキー)の配列です。 'to'は 'grid_item'で塗りつぶされるTextView項目の配列です。これをArrayAdapterに変換する方法はありますか?または、SimpleAdapterで遅延ロードする方法は?

ありがとうございます!

答えて

1

は、私はそれが完璧に働い取得する何をしたかである:

  • は、単純にそのカスタムアダプタを作成し、行
  • の文字列が含まれているエントリと呼ばれる自分のクラスを作成しましたArrayAdapterを継承します。コンストラクタの場合は、Entry型のArrayListを渡します。
  • その後、遅延ロードの作業を取得するには、私のリストビューに

を追加された行のレイアウトXMLを膨らませるよりよいUI効率

  • ためViewHolderを作成します。

    • は私のカスタムのメソッドを追加しました私が既にアダプターに持っているArrayListにEntryオブジェクトの新しいArrayListを追加するアダプター
    • onScrollListenerを作成し、いくつかのデバッグテストから、エントリが合計エントリと等しくなったら、一番下までスクロールしました
    • 一番下が検出されたら、fetchメソッドを呼び出して別の30エントリを取得し、作成したaddメソッドを使用してこれらのエントリを追加してから使用しますArrayAdapterでnotifyDataSetChanged()メソッドを呼び出すと、新たにロードされたアイテムが表示される
  • 0

    独自のアダプタを作成してください。 BaseAdapterを拡張するListViewが格納されているプラ​​イベートクラスをActivityに作成します。抽象メソッドを記入し、必要に応じてデータを表示します。 SimpleAdapterとして有益であるように、あなた自身のアダプターからさらに多くの牽引力を得ることができます。本当に書くのは難しくありません。ここでは、他人のためにこの問題を解決するために

    +0

    ArrayAdapterを拡張したくないですか?私はLazyLoadingの.addメソッドを利用するように切り替えるつもりです。 –

    関連する問題