2011-11-14 26 views
0

私は何かを本当に簡単にしようとしていますが、何とか方向性を得られません。ここに私が達成しようとしていることがあります。外部UIスレッドからgridviewを更新

私のGridViewアクティビティでは、SDカードの場所から最大10枚の写真をロードしています。次に、 "Load more"というメニューオプションを使用して、別のSDカードの場所から最大50枚の写真を読み込み、すべての写真を表示するためにGridViewをリフレッシュしたい(新しいアイテムでGridViewアクティビティを再度呼びたくない)

外部スレッドまたはメニュートリガされたオプションからGridView(メインUIスレッドで定義されています)をリフレッシュすることは、私が探していることです。どんな提案も感謝します。

答えて

1

メニューで[リフレッシュ]オプションを定義してから、AsyncTaskをトリガーし、バックグラウンド操作を処理した後、結果を使用してUiを更新することが最も適切です。

詳細はAsyncTaskを確認してください。

http://developer.android.com/resources/articles/painless-threading.html

+0

は、 'AsyncTask'は最も確かに唯一の選択肢ではありません。それが確かに合理的な選択肢ではありますが、必ずしもそれが意味するものは「最も適切」ではありません。 – kabuko

0

UIスレッドの外側でGridViewにアクセスすることはできません。

ASynchTaskをお使いですか?その場合は、onPostExecute()を上書きしてイベントをスローします。

0

あなたは別のスレッドからrunOnUiThread()を呼び出すことができます非常にあなたが投稿リンクから明らかなように

runOnUiThread(new Runnable() { public void run() { 
    // update your GridView here... 
}}); 
関連する問題