runOnUiThread在片段中
我试图将一个活动转换为片段。  runOnUiThread上的错误标记。 过去: 
GoogleActivityV2从Activity扩展而来。 类ExecuteTask中的runOnUiThread。 类嵌套在活动上的ExecuteTask。
(运行正常)现在:
GoogleActivityV2从Fragment扩展而来。 类ExecuteTask中的runOnUiThread。 类嵌套在活动上的ExecuteTask。 (runOnUiThread错误)
这是我的代码
 public class GoogleActivityV2 extends SherlockMapFragment implements OnMapClickListener , OnMapLongClickListener , OnCameraChangeListener , TextWatcher { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ View rootView = inflater.inflate(R.layout.activity_googlev2, container, false); Init(); adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_dropdown_item_1line); textView = (AutoCompleteTextView) getView().findViewById(R.id.autoCompleteTextView1); return rootView; } public void onCameraChange(CameraPosition arg0){ // TODO Auto-generated method stub } public void onMapLongClick(LatLng arg0){ llLoc = arg0; stCommand = "onTouchEvent"; lp = new ExecuteTask(); lp.execute(); } public void onMapClick(LatLng arg0){ // TODO Auto-generated method stub } class ExecuteTask extends AsyncTask<String, String, String> { @Override protected void onPreExecute(){ super.onPreExecute(); if(stCommand.compareTo("AutoCompleteTextView") != 0) { pDialog = new ProgressDialog(getActivity()); pDialog.setMessage(Html.fromHtml("<b>Search</b><br/>Loading ...")); pDialog.setIndeterminate(false); pDialog.setCancelable(false); pDialog.show(); } } protected String doInBackground(String ... args){ do something return null; } @Override protected void onPostExecute(String file_url){ if(stCommand.compareTo("AutoCompleteTextView") != 0) pDialog.dismiss(); runOnUiThread(new Runnable() { public void run(){ do something } }); } } public void afterTextChanged(Editable s){ // TODO Auto-generated method stub } public void beforeTextChanged(CharSequence s, int start, int count, int after){ // TODO Auto-generated method stub } public void onTextChanged(CharSequence s, int start, int before, int count){ // TODO Auto-generated method stub } } 
 错误说: 
我该如何解决这个错误?
 试试这个: getActivity().runOnUiThread(new Runnable... 
这是因为:
  1)隐含在你的runOnUiThread的调用是指AsyncTask,而不是你的片段。 
  2) Fragment没有runOnUiThread 
 但是Activity有: 
 请注意,如果您已经在主线程上, Runnable执行Runnable如果您不在主线程上,则使用Handler 。 你可以在你的片段中实现一个Handler ,如果你不想担心这个上下文,那实际上很简单: 
http://developer.android.com/reference/android/os/Handler.html
 编辑:@rciovati是正确的,你在onPostExecute ,已经在主线程。