ProgressFragment

2014-02-10T00:00:00+00:00 Android Java

http://johnkil.github.io/Android-ProgressFragment っていうのがあるみたいでデモアプリもある模様

みたいにデータをロード中です的なProgressを出しつつ、完了したら

的な感じで、もしデータがなかったら

的なことが出来ると。まぁやってみたのがListFragment対応だけなのだけど

package sample.test;

import android.os.Bundle;
import android.os.Handler;
import android.widget.ArrayAdapter;

import com.devspark.progressfragment.SherlockProgressListFragment;

public class SampleListFragment extends SherlockProgressListFragment {

    private Handler mHandler = new Handler();
    private ArrayAdapter<String> mAdapter;

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        setEmptyText("no data");

        mAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1);
        setListAdapter(mAdapter);

        new Thread() {
            @Override
            public void run() {
                setListShown(false);

                for (int i = 0; i < 10; i++) {
                    mAdapter.add("hoge" + (i + 1));
                }

                mHandler.postDelayed(new Thread() {
                    @Override
                    public void run() {
                        setListShown(true);
                    }
                }, 3000);
            }
        }.start();
    }
}

的な感じでsetListShownのメソッドを利用することでProgressの状態をコントロールする的な感じで使用出来る模様。無論、ListFragment対応だけじゃなくて普通のFragmentなのも出来る模様だけど、まぁそこら辺はドキュメント読めってことで

結論として、データをロードしているまでの空白の時間に何もしないよりはこういう手法的なのを採用するのもいいのではって

追記

動作画面のキャプチャ動画

{% youtube Td6tBRtk324 %}

Spring WebMVCをやってみる (19) - UriComponentsBuilder - Chrome Native Messaging