-1

pulltorefresh リストビューを実際のコードに統合することに成功しました。

ただし、リストが更新されると、存在するすべての行がリストの最後に追加されます。更新を行う前にすべてのリスト要素をクリアするという考えに至りましたが、私は固執しています

リストビュー内のこれらの行を削除する方法。行アイテムはキャッシュ可能な要素です。クリアキャッシュのようなものが機能すると思いますか? 任意のアイデアをお願いします。リストビューの行を取り除きたい。

<com.dmobile.pulltorefresh.PullRefreshContainerView
    android:id="@+id/container"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:dividerHeight="2dp"
    android:scrollingCache="false"
    android:listSelector="@drawable/list_selector"
    />

これが私の効率的なアダプターです

            EfficientAdapter efficienadapter=new EfficientAdapter(Actualites.this,result);
            //EfficientAdapter.isActusAstuce=true;
            mList.setAdapter(efficienadapter);

これは私の oncreate メソッドです

mRefreshHeader = 新しい TextView(これ);

        mImage= new ImageView(this);

        mRefreshHeader.setTextSize(TypedValue.COMPLEX_UNIT_SP,16);

        mRefreshHeader.setTypeface(null, Typeface.BOLD);

        mRefreshHeader.setTextColor(getResources().getColor(R.color.blue));

        mRefreshHeader.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,

LayoutParams.MATCH_PARENT));

        mRefreshHeader.setGravity(Gravity.CENTER);

        mRefreshHeader.setText("Pull to refresh...");


        mImage.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

      //  LinearLayout.LayoutParams params=new LinearLayout.LayoutParams
           //     ((int)LayoutParams.WRAP_CONTENT,(int)LayoutParams.WRAP_CONTENT);

       // params.leftMargin=50;

       // mImage.setLayoutParams(params);

        int id = getResources().getIdentifier("boutton_retour", "drawable", getPackageName());

        //mImage.setImageResource(id);   

        mContainerView = (PullRefreshContainerView) findViewById(R.id.container);

        mContainerView.setRefreshHeader(mRefreshHeader);

        mContainerView.setRefreshHeader(mImage);

        mContainerView.setOnChangeStateListener(new OnChangeStateListener() {

            @Override

            public void onChangeState(PullRefreshContainerView container, int 

状態) { スイッチ(状態) {

                case PullRefreshContainerView.STATE_IDLE:

                case PullRefreshContainerView.STATE_PULL:

                    mRefreshHeader.setText("Tirez pour actualiser...");

                    break;

                case PullRefreshContainerView.STATE_RELEASE:

                    mRefreshHeader.setText("Relâchez pour rafraîchir...");

                    break;

                case PullRefreshContainerView.STATE_LOADING:

                    mRefreshHeader.setText("Chargement en cours...");

                    new Thread(new Runnable() {

                        @Override

                        public void run() {
                            Actualites.this.runOnUiThread(new Runnable() {

                                @Override

                                public void run() {

                                    try {

                                        Thread.sleep(2000);

                                    } catch 

(InterruptedException e) {

        e.printStackTrace();
                                    }
                                    //refresh ui

                                    new loadingTask().execute("");


                                    mContainerView.completeRefresh();
                                }
                            });

                        }


                    }).start();

                    break;

                }

            }

        });


        mList = mContainerView.getList();

        mList.setCacheColorHint(Color.TRANSPARENT);

        // PostList for ListView

        /// START AsyncTask here

        new loadingTask().execute("");


  note       new loadingTask().execute("") is an async background task
4

1 に答える 1

0

最初に、結果の配列/arrayList またはリストをクリアします。その後、アダプタにリスト項目を同期するように通知します。

result.clear();
efficienadapter.notifyDataSetChanged();

この助けを願っています

于 2013-01-26T07:31:51.130 に答える