[英]Android GridView Adapter with AsyncTask
I parse XML from web and I want to put this data to GridView in other activity, can you help me? 我从Web解析XML,并希望在其他活动中将此数据放到GridView中,您能帮我吗?
My first activity: 我的第一个活动:
public class HomeScreenActivity extends Activity {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageButton:
Intent intent = new Intent(this, TopArtistsScreen.class);
intent.putExtra("username", username);
new DownloadXmlTask(this, HomeScreenActivity.this)
.execute("URL");
startActivity(intent);
}
My AsyncTask 我的AsyncTask
public class DownloadXmlTask extends AsyncTask<String, Void, List<Artist>> {
@Override
protected void onPostExecute(List<Artist> result) {
progressDialog.dismiss();
gridView.setAdapter(new TopArtistsImageAdapter(context, result));
}
TopArtistsImageAdapter TopArtistsImageAdapter
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if(convertView==null) {
view = inflater.inflate(R.layout.items, null);
}
TextView textView = (TextView) view.findViewById(R.id.grid_item_name);
ImageView imageView = (ImageView) view.findViewById(R.id.grid_item_image);
textView.setText(artistsList.get(position).getName());
imageLoader.DisplayImage(artistsList.get(position).getImage(), imageView);
return view;
}
PS I shoud start another activity only after downloading all information PS我应该下载所有信息后才开始其他活动
I shoud start another activity only after downloading all information => Make changes as below: 我应该在下载所有信息后才开始其他活动=>进行如下更改:
1) Only execute your AsyncTask on button click 1)仅在单击按钮时执行AsyncTask
new DownloadXmlTask(this, HomeScreenActivity.this).execute("URL");
2) Start Activity inside onPostExecute() method of your AsyncTask: 2)在AsyncTask的onPostExecute()方法内启动Activity:
Intent intent = new Intent(HomeScreenActivity.this, TopArtistsScreen.class);
intent.putExtra("username", username);
startActivity(intent);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.