notifyDataSetChanged() does not work?

Put your problem here if it does not fit any of the other categories.

notifyDataSetChanged() does not work?

Postby dashen.liu@gmail.com » Tue Sep 14, 2010 7:47 am

hello, i have a problem with notifyDataSetChanged()

the data source (mData) has been changed, but the list did not change itself .

i need your help. thx!


Code: Select all
[syntax="java"]
public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

      setContentView(R.layout.fairlist);
      System.out.println("into fairlistactivity ----------------->");
      mData = getData();
      System.out.println("mData onCreate --------------->" + mData.size());
      this.getListView().setSelected(true);
      // this.getListView().setDivider(null);

      SimpleAdapter adapter = new SimpleAdapter(this, mData,
            R.layout.imglist, new String[] { "messe_title", "messe_date",
                  "messe_logo_s" }, new int[] { R.id.messe_title,
                  R.id.messe_date, R.id.messe_logo_s });
      adapter.setViewBinder(new GcViewBinder());
      this.setListAdapter(adapter);
      baseurl = GcGlobalArguments.getMegDict().get("baseurl");
      System.out.println("baseurl : " + baseurl);

      View updateButton = findViewById(R.id.update_btn);
      updateButton.setOnClickListener(this);
      System.out.println("isUpdate------------>" + isUpdate);
   }

@Override
   public void onClick(View v) {
      System.out.println("Update button--------------> click!");
      ConnectivityManager nw = (ConnectivityManager) FairListActivity.this
            .getSystemService(Context.CONNECTIVITY_SERVICE);
      System.out.println("ConnectivityManager----------->" + nw);

      NetworkInfo netinfo = nw.getActiveNetworkInfo();
      System.out.println("NetworkInfo--------------->" + netinfo);
      // beim Emulator kann getActiveNetworkInfo ein Null sein
      if (nw.getActiveNetworkInfo() != null) {
         if (netinfo.isAvailable() && netinfo.isConnected()) {
            System.out.println("network works-------------->checked!");
            updatedownload();
         } else {
            alertNonet();
         }
      } else {
         if (netinfo.isAvailable()) {
            System.out.println("network works-------------->checked!");
            updatedownload();
         } else {
            alertNonet();
         }
      }
   }

   private void updatedownload() {
      System.out.println("updatedownload-------------------------->start");
      Dialog dialog = new AlertDialog.Builder(FairListActivity.this).setIcon(
            android.R.drawable.ic_dialog_info).setCancelable(false)
            .setTitle(R.string.dialg_info).setMessage(R.string.update_text)
            .setPositiveButton(R.string.yes,
                  new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog,
                           int whichButton) {
                        dialog.dismiss();

                        final ProgressDialog pDialog = new ProgressDialog(
                              FairListActivity.this);
                        pDialog
                              .setProgressStyle(ProgressDialog.STYLE_SPINNER);
                        pDialog.setTitle(R.string.dialg_info);
                        pDialog.setMessage(getResources().getString(
                              R.string.loading));
                        pDialog.setIndeterminate(false);
                        pDialog.show();

                        handler = new Handler() {
                           @Override
                           public void handleMessage(Message msg) {
                              switch (msg.what) {
                              case UPDATE_UI: {
                                 System.out
                                       .println("UI update--------------->");
                                 isUpdate = true;

                                 System.out
                                       .println("Listview------------->refresh start");
                                 SimpleAdapter adapter = (SimpleAdapter) FairListActivity.this
                                       .getListAdapter();
                                 mData = null;
                                 mData = getData();
                                 System.out
                                       .println("mData() onUpdate------------->"
                                             + mData.size());
                                 // FairListActivity.this.setListAdapter(adapter);
                                 // adapter.setViewBinder(new
                                 // GcViewBinder());
                                 adapter.notifyDataSetChanged();
                                 System.out
                                       .println("isUpdate------------>"
                                             + isUpdate);
                                 System.out
                                       .println("Listview------------->refresh end");
                                 break;
                              }
                              default:
                                 break;
                              }

                           }

                        };

                        // Thread t = new Thread(new Runnable()
                        handler.post(new Runnable() {

                           @Override
                           public void run() {

                              System.out
                                    .println("update thread 1 ------------------------>aktive");
                              try {
                                 Thread.sleep(1000);
                              } catch (InterruptedException e1) {

                                 e1.printStackTrace();
                              }

                              if (GcUtil.downloadFile(
                                    GcGlobalArguments.ZIP_URL,
                                    megFile, filePath, 20) == 1) {

                                 File zipFile = new File(filePath
                                       + megFile);

                                 try {
                                    GcUtil
                                          .deleteDirectory(filePath_MEG);
                                    GcUtil.upZipFile(zipFile,
                                          filePath_MEG);
                                 } catch (ZipException e) {
                                    e.printStackTrace();
                                 } catch (IOException e) {
                                    e.printStackTrace();
                                 }

                                 try {
                                    GcUtil.deleteFile(filePath
                                          + megFile);
                                 } catch (Exception e) {

                                 }

                                 Map<String, String> megDict_tmp = new HashMap<String, String>();
                                 List<String> splitList = new ArrayList<String>();
                                 splitList.addAll(Arrays
                                       .asList(GcUtil.readTxt(
                                             filePath_MEG,
                                             configFile).split(
                                             "\n")));
                                 for (String str : splitList) {
                                    if (!str.startsWith("#")) {
                                       megDict_tmp.put(str
                                             .split("=")[0], str
                                             .split("=")[1]);
                                    }
                                 }
                                 GcGlobalArguments
                                       .setMegDict(megDict_tmp);

                                 pDialog.dismiss();

                                 handler.sendEmptyMessageDelayed(
                                       UPDATE_UI, 0);
                                 System.out
                                       .println("handler message -----------> gesendet!");
                              } else {

                                 alertTimeout();

                              }
                           }

                        });
                        // t.start();

                     }
                  }).setNegativeButton(R.string.no,
                  new DialogInterface.OnClickListener() {
                     public void onClick(DialogInterface dialog,
                           int whichButton) {
                        dialog.dismiss();
                     }
                  }).create();

      dialog.show();

   }

[/syntax]

dashen.liu@gmail.com
Once Poster
Once Poster
 
Posts: 1
Joined: Tue Sep 14, 2010 7:41 am

Top

Return to Other Coding-Problems

Who is online

Users browsing this forum: No registered users and 11 guests