0

カスタム ListView に LazyList を使用しています。ユーザーがリストを変更した後、リストを更新する必要があります。この場合は、項目をお気に入りとして追加します。

私は使用しようとしました:

     list.invalidate();
    ((BaseAdapter) list.getAdapter()).notifyDataSetChanged(); 

         list.notifyDataSetChanged();

しかし、LazyList では動作しないようです。

これは私のコードの一部です:

        ListView list;
        LazyAdapter adapter; 

        //set the custom list adapter
        adapter = new LazyAdapter(this, fileString, null, movieNameString,
        mId, DataBaseSize,myScore,year4list,cast4list,favArray,bellArray);
        list.setAdapter(adapter);

        @Override
        public boolean onContextItemSelected(MenuItem item) {
        final AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

      switch (item.getItemId()) {
              case R.id.context_fav:

              //here theres non- importent code that makes favorite 
              pops when user click on it

         list.invalidate();
        ((BaseAdapter) list.getAdapter()).notifyDataSetChanged(); 

何らかの理由で、リストが更新されていません。Intent を使用してアクティビティを再入力した場合にのみ、リストが更新されます。何か案は?

4

1 に答える 1

0

notifyDataSetChange を呼び出すと list が更新されますが、 fileString および movieNameString からすべての値が取得されるため、 notifyDataSetChange を呼び出す前にそれらを更新する必要があります。そうしないと、変更が見つかりません。

于 2013-07-06T13:22:17.177 に答える