0
これを解決しようとしている複数のスレッドを調べましたが、 "mListView .setAdapter(mAdapter); "ライン。ビュー階層を作成した元のスレッドのみがビューに触れることができますが、UIスレッドに移動しようとしましたが、何も動作しないようです
public void populateListView() // adds each string from json file to the listview of puzzles
{
try {
String[] strings = mPuzzleNames.toArray(new String[mPuzzleNames.size()]);
mAdapter = new ArrayAdapter<>(mContext, android.R.layout.simple_list_item_1, android.R.id.text1, strings);
mListView.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged(); //updates UI
}
catch (Exception e)
{
e.printStackTrace();
}
}
'populateListView()'を呼び出すのは何ですか?どのようにこれをUIスレッドに移動しましたか? – Cheticamp
populateListView()はAsyncTaskで呼び出されるため、バックグラウンドスレッド上にあると思います。 そして、私は({公共ボイド実行(UI } を更新する){ //もの @Override }新しいRunnableを()) 'runOnUiThreadを入れてみました;'(申し訳ありませんすべての編集について私は私の人生のためにこのフォーマットを理解することはできません) –
これは 'AsyncTask'の' doInBackground() 'から呼び出されますか?もしそうなら、それはバックグラウンドにあります。あなたが試したときに 'runOnUiThread'とはどうなりますか?あなたはそのコードを共有できますか? – Cheticamp