2014-09-09 8 views
0

RESOLU - dans mon commentaire ci-dessous. Mon fragment contient un ListView qui affiche les données d'une base de données. Lorsque j'appuie sur Effacer, je supprime des données de la base de données. Je veux rafraîchir instantanément les données à l'écran et je pense que je dois me rafraîchir Fragment:Comment puis-je actualiser Fragment avec ListView?

public class MyFragment extends Fragment implements View.OnClickListener 

avec ListView:

@Override 
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_my, container, false); 
    //... 
    listView = (ListView) rootView.findViewById(R.id.listView); 
    adapter = new ArrayAdapter<String>(getActivity(),R.layout.row, R.id.label, my_data); 
    listView.setAdapter(adapter); 

    return rootView; 
    } 
} 

Je veux appeler rafraîchir ici, après un clic sur le bouton:

J'ai essayé la solution que j'ai écrite dans le commentaire (et beaucoup semblable, que j'ai trouvé sur SO), mais il se bloque. Avez-vous des instructions comment puis-je le faire?

Mon LogCat:

E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    java.lang.NullPointerException 
    at android.app.BackStackRecord.run(BackStackRecord.java:668) 
    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447) 
    at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443) 
    at android.os.Handler.handleCallback(Handler.java:733) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5017) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
    at dalvik.system.NativeStart.main(Native Method) 
+1

accident >> LogCat – 2Dee

+0

votre logcat publier (http://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-solve-this) – EpicPandaForce

Répondre

0

Vous n'avez pas besoin de rafraîchir le fragment. Réinitialisez l'adaptateur avec les nouveaux résultats. Voici un exemple:

@Override 
public void onClick(View v) { 
    db.deleteAll(); 
    link_list = db.getAllLinks(); 
    adapter = new ArrayAdapter<String>(getActivity(),R.layout.row, R.id.label, link_list); 
    listView.setAdapter(adapter); 
} 
+0

Il suffit de le réaliser, merci :) – livetwice

0

je résous juste mon problème, il n'a pas été nécessaire de rafraîchir Fragment. Il suffit de notifier l'adaptateur des modifications et de le redéfinir sur listView. Je voulais voter-up, mais je réputation trop faible, donc merci Vous surtout @Arash et @Roll no1

Questions connexes