当 Detail 类在后台打开时,我想在按下 ListView 的任何项目时显示一个 ProgressDialog,我知道我必须使用 asyncTask,但我不知道如何操作,有人可以帮助我吗?
这是我用来显示 ProgressDialog 的 fragment
public class FeedPlayerIndexFragment extends SherlockFragment{
String url="http://www.toto.com/index.php?format=feed&type=rss";
ArrayList<Article> feeds ;
AndroidSaxFeedParser feedParser= new AndroidSaxFeedParser(url);
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
feeds=feedParser.parse();
View view=inflater.inflate(R.layout.main, container, false);
CustomItemAdapter_News lfa = new CustomItemAdapter_News(getActivity().getApplicationContext(), feeds);
((ListView)view.findViewById(R.id.listFeed)).setAdapter(lfa);
((ListView)view.findViewById(R.id.listFeed)).setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View v, int position,long id) {
Bundle b = new Bundle();
b.putInt("position", position);
b.putString("url", url);
Intent intent=new Intent(getActivity().getApplicationContext(), DetailActivity.class);
intent.putExtras(b);
startActivity(intent);
}
});
return view;
}
}
这是我的详细 Activity ,应该打开背景
public class DetailActivity extends Activity{
String descriptionFinale = null,imageFinale = null,url;
int position;
TextView description_,titre,date;
ImageView image_;
ArrayList<Article> feeds ;
WebView contentWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail);
Bundle b = getIntent().getExtras();
position=b.getInt("position");
url=b.getString("url");
AndroidSaxFeedParser feedParser= new AndroidSaxFeedParser(url);
feeds=feedParser.parse();
date=(TextView) findViewById(R.id.date);
contentWebView= (WebView)findViewById(R.id.contentWebView);
titre=(TextView) findViewById(R.id.titre);
date.setText(feeds.get(position).getTitle());
GetDescriptionWebView.getDescriptionImage(position, feeds,contentWebView);
titre.setText("Postulé le: "+GetDateFormat.getDate(position, feeds));
}
}
最佳答案
您可以尝试此代码
public class DetailActivity extends Activity
{
String descriptionFinale = null,imageFinale = null,url;
int position;
TextView description_,titre,date;
ImageView image_;
ArrayList<Article> feeds ;
WebView contentWebView;
ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail);
feeds=new Arraylist<Article>;
contentWebView= (WebView)findViewById(R.id.contentWebView);
date=(TextView) findViewById(R.id.date);
titre=(TextView) findViewById(R.id.titre);
Bundle b = getIntent().getExtras();
position=b.getInt("position");
url=b.getString("url");
AndroidSaxFeedParser feedParser= new AndroidSaxFeedParser(url);
new MyFetchTask().execute();
}
public class MyFetchTask extends AsyncTask<Object, Object, Object>
{
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
dialog=ProgressDialog.show(DetailActivity.this, "", "Loading...");
}
@Override
protected Object doInBackground(Object... params) {
// TODO Auto-generated method stub
feeds=feedParser.parse();
return null;
}
@Override
protected void onPostExecute(Object result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
dialod.dismiss();
date.setText(feeds.get(position).getTitle());
GetDescriptionWebView.getDescriptionImage(position, feeds,contentWebView);
titre.setText("Postulé le: "+GetDateFormat.getDate(position, feeds));
}
}
}
关于java - ProgressDialog Android AsyncTAsk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12838322/