I have an activity which have ListView. When I want to access this ListView from another thread I got this error ..
How may I do that ?
Error Log :
09-10 18:48:48.502: ERROR/ClientActivity(455): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.view.ViewRoot.checkThread(ViewRoot.java:2932)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.view.ViewRoot.focusableViewAvailable(ViewRoot.java:1712)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.view.ViewGroup.focusableViewAvailable(ViewGroup.java:452)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.view.ViewGroup.focusableViewAvailable(ViewGroup.java:452)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.view.ViewGroup.focusableViewAvailable(ViewGroup.java:452)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.view.ViewGroup.focusableViewAvailable(ViewGroup.java:452)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.view.View.setFlags(View.java:4614)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.view.View.setFocusableInTouchMode(View.java:3190)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.widget.AdapterView.checkFocus(AdapterView.java:694)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:789)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:31)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
09-10 18:48:48.502: ERROR/ClientActivity(455): at android.widget.ArrayAdapter.notifyDataSetChanged(ArrayAdapter.java:247)
09-10 18:48:48.502: ERROR/ClientActivity(455): at socket.android.ClientActivity$ClientThread.run(ClientActivity.java:100)
09-10 18:48:48.502: ERROR/ClientActivity(455): at java.lang.Thread.run(Thread.java:1019)
if you wat to access widgets from another thread the standard way is to use
Handlerhere you can find an example how to use
Handler