Ne peut pas résoudre méthode .runOnUiThread

J'ai trouvé cette exemple ici sur la façon d'utiliser le runOnUiThreaed méthode, mais je ne comprends pas comment l'utiliser.

J'configuration de la liste de l'adaptateur dans mon activité principale

    //Set a gobal reference to the list adapter and the list respectivly 

    ListAdapter listAdapter;
    static ArrayList<String> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //some code

        adapter = new ListAdapter(getActivity(), R.layout.item_layout, list);
        listView.setAdapter(adapter);

        //some code

    }

J'ai la liste de l'adaptateur ici d'appeler un service de classe de gestionnaire

public class ListAdapter {

    //some code

    ServiceHandler sh = new ServiceHandler();

    sh.run();
}

Ici est .run() méthode dans ServiceHandler classe où j'ai mis à jour la liste et de la liste de l'adaptateur

public void run(Adapter listAdapter, ArrayList<String> list){

    //some code

    list[0] = "foo";
    listAdapter.notifyDataSetChanged;
}

Mais j'ai cette erreur au moment de l'exécution

Seul le thread qui a créé un point de vue de la hiérarchie peut toucher son point de vue.

J'ai donc essayer de résoudre l'erreur avec .runOnUiThread

Voici donc .run() méthode dans ServiceHandler classe à nouveau, avec runOnUiThread

public void run(Adapter listAdapter, ArrayList<String> list){

    //some code

    runOnUiThread(new Runnable() {
        @Override
        public void run() {

            list[0] = "foo";
            listAdapter.notifyDataSetChanged;
    });
}

Mais je reçois

Ne peut pas résoudre la méthode 'runOnUiThread(anonyme Java.lang.runnable)'

OriginalL'auteur the_prole | 2015-11-29