0

Web から XML を解析し、このデータを他のアクティビティで GridView に配置したいのですが、助けてもらえますか?

私の最初の活動:

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);
}

私の非同期タスク

public class DownloadXmlTask extends AsyncTask<String, Void, List<Artist>> {
    @Override
    protected void onPostExecute(List<Artist> result) {
        progressDialog.dismiss();
        gridView.setAdapter(new TopArtistsImageAdapter(context, result));
}

トップアーティストImageAdapter

@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 すべての情報をダウンロードした後でのみ、別のアクティビティを開始する必要があります

4

1 に答える 1

1

すべての情報をダウンロードした後でのみ、別のアクティビティを開始する必要があります => 以下のように変更します。

1)ボタンのクリック時にのみ AsyncTask を実行します

new DownloadXmlTask(this, HomeScreenActivity.this).execute("URL");

2) AsyncTask の onPostExecute() メソッド内でアクティビティを開始します。

Intent intent = new Intent(HomeScreenActivity.this, TopArtistsScreen.class);
intent.putExtra("username", username);
startActivity(intent);
于 2013-02-21T11:24:46.063 に答える