title: How to Refresh ListView in Fragment that is filled with BaseAdapter?
body: <p>I want to Refresh a ListView in a Fragment when a Dialog is closed. Until now the refresh only works when I restart the app and I don't really know why.</p>
  
  <p>Here are the classes:</p>
  
  <p>This is the Fragment with the ListView on it, that i want to refresh, when the Dialog is closed.</p>
  
  <pre><code>public class RegisterListFragment extends Fragment {
  
  
      public static final String TAG = "RegisterListFragment";
  
      RegisterListAdapter adapter;
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
                               Bundle savedInstanceState) {
          setRetainInstance(true);
          // TODO Auto-generated method stub
  
          View view = inflater.inflate(R.layout.act_select_list_fragment, container, false);
  
  
          ListView list = (ListView) view.findViewById(R.id.register_list);
          list.setOnItemClickListener(new OnItemClickListener() {
  
              @Override
              public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int arg2,
                                      long arg3) {
                  Intent i = new Intent(getActivity(), com.example.smartkasse.Act_Register.MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                  TextView selectedRegisterTextView = (TextView) arg1.findViewById(R.id.title);
                  String selectedRegisterName = (String) selectedRegisterTextView.getText();
                  i.putExtra("selectedRegisterName", selectedRegisterName);
                  startActivity(i);
                  getActivity().finish();
              }
          });
          adapter = new RegisterListAdapter(getActivity());
          list.setAdapter(adapter);
  
          return view;
      }
  
  
      public void refreshData() {
          adapter.notifyDataSetChanged();
      }
  }
  </code></pre>
  
  <p>And this is the Adapter I fill the List with:</p>
  
  <pre><code>public class RegisterListAdapter extends BaseAdapter {
      View view = null;
  
      Database db = new Database(mContext);
      data=db.getAlltitles();
      if(convertView==null)
  
      {
  
          view = (View) inflater.inflate(R.layout.act__select_listview, null);
  
          TextView title = (TextView) view.findViewById(R.id.title);
          TextView artist = (TextView) view.findViewById(R.id.artist);
          TextView duration = (TextView) view.findViewById(R.id.duration);
          ImageView thumb_image = (ImageView) view.findViewById(R.id.list_image);
  
          title.setText(data.get(position));
          //artist.setText(data.get(position));
          //duration.setText(data.get(position));
          //thumb_image.setImageResource(R.drawable.ic_launcher);
  
          return view;
      }
  
      else
  
      {
  
          TextView title = (TextView) convertView.findViewById(R.id.title);
          TextView artist = (TextView) convertView.findViewById(R.id.artist);
          TextView duration = (TextView) convertView.findViewById(R.id.duration);
          ImageView thumb_image = (ImageView) convertView.findViewById(R.id.list_image);
  
          title.setText(data.get(position));
          // artist.setText(data.get(position));
          // duration.setText(data.get(position));
          //thumb_image.setImageResource(R.drawable.ic_launcher);
  
          return convertView;
      }
  }
  </code></pre>
  
  <p>And this is the Main that holds everything together:</p>
  
  <p>When the positv Button of the Dialog is pressed, then new Data is added to the Database that i want </p>
  
  <pre><code>public class MainActivity extends SherlockFragmentActivity implements OnRegisterCreatedListener {
      RegisterListFragment registerListFragment;
      HelpFragment helpFragment;
  
      boolean helpVisible = false;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
  
          super.onCreate(savedInstanceState);
  
          // Grund-Layout für die Activity festlegen
          setContentView(R.layout.act_select_main);
  
          addFragments();
  
          supportInvalidateOptionsMenu();
          setLargeInLandscape();
  
      }
  
  // Was passiert wenn der Menüknopf gedrückt wird
  
      // Inflate the menu; this adds items to the action bar if it is present.
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Zeigt nur die die nicht in Actionbar sind, kann aber eingestellt
          // werden im XML-File
  
          if (helpVisible) {
              getSupportMenuInflater().inflate(
                      R.menu.act_select_menu_help_visible, menu);
  
          } else {
              getSupportMenuInflater().inflate(
                      R.menu.act_select_menu_registerlist_visible, menu);
          }
  
          return true;
      }
  
      // Was passiert wenn ein Menüpunkt ausgewählt wird
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          // Handle item selection
          switch (item.getItemId()) {
              // Das wenn der Knopf das Plus war
              case R.id.menu_help:
                  changeFragment();
                  // this.supportInvalidateOptionsMenu();
                  break;
              case android.R.id.home:
                  changeFragment();
                  // this.supportInvalidateOptionsMenu();
                  break;
              case R.id.menu_add_register:
                  FragmentManager fm = getSupportFragmentManager();
  
                  NewRegisterFragment dialog = new NewRegisterFragment();
                  dialog.setRetainInstance(true);
                  dialog.show(fm, "fragment_name");
                  break;
              // Listenelement hinzufügen und dem Adapter sagen es hat sich was
              // geändert, mach neu
  
          }
          return true;
      }
  
      @Override
      public boolean onKeyDown(int keyCode, KeyEvent event) {
          // TODO Auto-generated method stub
          switch (keyCode) {
              case KeyEvent.KEYCODE_BACK:
                  if (helpVisible = true) {
                      // changeFragment();
                      helpVisible = false;
                      getSupportActionBar().setDisplayHomeAsUpEnabled(false);
                      supportInvalidateOptionsMenu();
  
                  }
                  break;
  
          }
  
          return super.onKeyDown(keyCode, event);
      }
  
      private void addFragments() {
  
          // Zuerst versuchen Fragmente aus dem Layout zu laden
          registerListFragment = (RegisterListFragment) getSupportFragmentManager()
                  .findFragmentById(R.id.registerListFragment);
          helpFragment = (HelpFragment) getSupportFragmentManager()
                  .findFragmentById(R.id.HelpFragment);
  
          // Wenn die Fragmente nicht im Layout sind, füge sie dynamisch hinzu
          if (registerListFragment == null &amp;&amp; helpFragment == null) {
  
              FragmentTransaction ft = getSupportFragmentManager()
                      .beginTransaction();
  
              registerListFragment = new RegisterListFragment();
  
              helpFragment = new HelpFragment();
  
              ft.setCustomAnimations(android.R.anim.fade_in,
                      android.R.anim.fade_out, android.R.anim.fade_in,
                      android.R.anim.fade_out);
  
              ft.add(R.id.Fragmentframe, registerListFragment);
              ft.add(R.id.Fragmentframe, helpFragment);
              ft.show(registerListFragment);
              ft.hide(helpFragment);
              ft.commit();
  
              // OnclickListener für Fragmentwechseln
  
          }
  
      }
  
      private void changeFragment() {
  
          // Fragmente austauschen
          FragmentManager fm = getSupportFragmentManager();
          FragmentTransaction ft = fm.beginTransaction();
          if (registerListFragment.isVisible()) {
              ft.hide(registerListFragment);
              ft.show(helpFragment);
  
              helpVisible = true;
              supportInvalidateOptionsMenu();
  
              getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  
              if (getSupportFragmentManager().findFragmentByTag(
                      "RegisterListFragment") == null) {
                  ft.addToBackStack("RegisterListFragment");
              }
          } else {
              ft.hide(helpFragment);
  
              helpVisible = false;
              supportInvalidateOptionsMenu();
              getSupportActionBar().setDisplayHomeAsUpEnabled(false);
  
              fm.popBackStack();
          }
  
          ft.commit();
      }
  
      private void setLargeInLandscape() {
          if ((getResources().getConfiguration().screenLayout &amp; Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {
              setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
              findViewById(R.id.menu_help).setVisibility(View.GONE);
          }
          if ((getResources().getConfiguration().screenLayout &amp; Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
              setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
              findViewById(R.id.menu_help).setVisibility(View.GONE);
          }
  
      }
  
      @Override
      public void OnRegisterCreated() {
          // TODO Auto-generated method stub
          registerListFragment.refreshData();
  
      }
  </code></pre>
  
  <p>to see in the listView "behind" the dialog. I tried so much, but i really didnt get it. Hope you can help me.</p>
  
  <p>Thanks :)</p>