当onPreExecute函数执行时,我有一个AsyncTask,它给了我一个例外
** java.lang.IllegalStateException: View
com.android.internal.policy.impl.PhoneWindow$DecorView@44ea0e20
has already been added to the window
manager.**
我的活动
public class TopNewsActivity extends ListActivity { public static final String LOG_TAG = "Infra"; private ProgressDialog progressDialog; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listplaceholder); new BackgroundAsyncTask().execute(); } public class BackgroundAsyncTask extends AsyncTask<String,Integer,ArrayList<HashMap<String,String>>> { @Override protected void onPreExecute() { super.onPreExecute(); progressDialog = new ProgressDialog(TopNewsActivity.this); progressDialog.setCancelable(true); progressDialog.setMessage("Loading..."); progressDialog.setProgressstyle(ProgressDialog.STYLE_SPINNER); progressDialog.setProgress(0); progressDialog.show(); } @Override protected ArrayList<HashMap<String,String>> doInBackground(String... paths) { ArrayList<HashMap<String,String>> mylist = new ArrayList<HashMap<String,String>>(); String xml = XMLfunctions.getTopNewsXML(); Document doc = XMLfunctions.XMLfromString(xml); int numResults = XMLfunctions.numResults(doc); Log.d(LOG_TAG,"Number of Results: " + numResults); if ((numResults <= 0)) { Toast.makeText(TopNewsActivity.this,"No Result Found",Toast.LENGTH_LONG).show(); finish(); } NodeList nodes = doc.getElementsByTagName("result"); for (int i = 0; i < nodes.getLength(); i++) { HashMap<String,String> map = new HashMap<String,String>(); Element e = (Element) nodes.item(i); map.put("id",XMLfunctions.getValue(e,"id")); map.put("title","title")); mylist.add(map); } return mylist; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); } protected void onPostExecute(ArrayList<HashMap<String,String>> result) { listadapter adapter = new SimpleAdapter(TopNewsActivity.this,result,R.layout.list_item,new String[] { "title" },new int[] { R.id.item_title }); setlistadapter(adapter); progressDialog.dismiss(); final ListView lv = getListView(); lv.setTextFilterEnabled(true); lv.setonItemClickListener(new OnItemClickListener() { @SuppressWarnings("unchecked") @Override public void onItemClick(AdapterView<?> a,View view,final int position,long id) { HashMap<String,String> o = (HashMap<String,String>) lv.getItemAtPosition(position); Intent i = new Intent(TopNewsActivity.this,NewsDetails.class); i.putExtra("content_id",o.get("id")); i.putExtra("title",o.get("title")); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); View v = TopNewsGroup.group.getLocalActivityManager().startActivity("ShowNews",i).getDecorView(); // Again,replace the view TopNewsGroup.group.setContentView(v); } }); } } public class MySimpleAdapter extends SimpleAdapter { public MySimpleAdapter(Context context,List<? extends Map<String,?>> data,int resource,String[] from,int[] to) { super(context,data,resource,from,to); // Todo Auto-generated constructor stub } } }
请帮忙!!!!!
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。