1

ローダーを使用してデータを gridview にロードしています。まず、いくつかのコードをお見せしましょう:-

The Fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle icic){

    View v=inflater.inflate(R.layout.thegrid, container, false);
    final GridView gv = (GridView)v.findViewById(
            R.id.thegridview);
    gv.setAdapter(upAd);//upAd is the array adapter initialized in oncreate of the fragment

    gv.setOnItemClickListener(this);
    Bundle args=new Bundle();
    args.putString("page", String.valueOf(page));
    getLoaderManager().initLoader(1, args, this);

    return v;
}
@Override
public Loader<ArrayList<HashMap<String, String>>> onCreateLoader(int loaderId,Bundle thebundle) {

    if(loaderId==1){
        String page=thebundle.getString("page");
        return new MyLoader(getActivity().getApplicationContext(),page);
    }

    return null;
}


@Override
public void onLoadFinished(Loader<ArrayList<HashMap<String, String>>> theLoader,ArrayList<HashMap<String, String>> data) {
    upAd.addAll(data);
}

フラグメントが表示されると、ダウンロードされた 10 個の要素のグリッドが表示されます。画面の向きが変更されると、ローダーは適切に動作し、データを再度ダウンロードしませんが、同じデータをグリッドに再度追加します。 20 個の要素のグリッドがあり、同じ 10 個が 2 回繰り返されます。よく私は呼び出すことができます:-

upAd.clear() 

onLoadFinished ですが、私はそれを避けたいと思っています。

4

2 に答える 2

-1

menizestファイルのActivity宣言でこの行を使用してください。

android:configChanges="orientation|keyboardHidden"
于 2012-08-18T11:10:47.847 に答える