2014-01-09 3 views
1

Я разрабатываю приложение для Android, и я использую Eclipse в качестве IDE, а моя база данных - это MySQL. У меня есть следующая проблема. Когда я пытаюсь взять данные из базы данных через AsynTask, у меня есть ошибка, которую я покажу ниже.

android.view.ViewRootImpl$CalledFromWrongThreadException: 
Only the original thread that created a view hierarchy 
can touch its views 

активность:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    asyn=new MyAsyncTask(); 

    tvtexto=(TextView)findViewById(R.id.tvtextoMa); 
    context = getApplicationContext(); 
    eventos = new ArrayList<Eventos>(); 
    eventosAdapter = new EventosAdapter(context, R.layout.filae, eventos); 
    eventos=new ArrayList<Eventos>(); 
    asyn.execute(); 
    listView = (ListView)findViewById(R.id.ListView01Ma); 
} 

AsyncTask:

public class MyAsyncTask extends AsyncTask<Void, Void, Void> 
{ 
    @Override 
    protected Void doInBackground(Void... arg0) 
    { 
     eventos=(ArrayList<Eventos>) BDEventos.getDatosEventos(); 
     for(Eventos n:eventos){ 
     eventosAdapter.add(n); 
     } 
     eventosAdapter.notifyDataSetChanged(); 
     listView.setAdapter(eventosAdapter); 
     return null; 
    } 
} 
+0

Вы найдете много ответов на вашу проблему, которые ищут «[андроид] CalledFromWrongThreadException». –

+0

Возможный дубликат [CalledFromWrongThreadException] (http://stackoverflow.com/questions/3413544/calledfromwrongthreadexception) –

ответ

0

Обновление пользовательского интерфейса от фонового потока не представляется возможным. `doInbackground вызывается в фоновом потоке. Ui должен быть обновлен в потоке ui.

Получить данные своей базы данных в doInbackground Результаты возврата и обновления ui соответственно в onPostExecute.

eventosAdapter.notifyDataSetChanged(); 
listView.setAdapter(eventosAdapter); 

должен быть в onPostExecute

+0

Теперь он работает правильно. Спасибо! – user3044820

Смежные вопросы

 Смежные вопросы