0

カスタムアダプターの getview メソッドから実行される画像のダウンロードには Asynctask を使用しました。このカスタム アダプタはリストビューに設定されていますが、リストビューには何も表示されません。メインアクティビティからプログレスバーをクリックしたときにリストビューを表示したいのですが、何が問題なのですか? 誰でも私を助けてください。私のコードは次のようなものです: @Override public View getView(int position, View convertView, ViewGroup parent) {

        inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        if (convertView == null){
            convertView = inflater.inflate(R.layout.show_image, null);
            imageview = (ImageView) convertView.findViewById(R.id.imageview);
            convertView.setTag(imageview);
            new DownloadTask().execute(images.get(position), imageview);                 
        }
        return convertView;
    }       
}

private class DownloadTask extends AsyncTask<Object, Integer, Bitmap>{
    ImageView iv;

    @Override
    protected Bitmap doInBackground(Object... params) {         

        String url = (String) params[0];
        iv = (ImageView) params[1];     
        Bitmap bmap = null;

        try {               
            bmap = getBitmap(url);
        } catch (IOException e) {

            e.printStackTrace();
        }   
            return bmap;
    }

    public Bitmap getBitmap(String urlstring) throws IOException{

        URL _url = new URL(urlstring);
        HttpURLConnection connection = (HttpURLConnection) _url.openConnection();

        InputStream stream = connection.getInputStream();

        Bitmap bitmap = BitmapFactory.decodeStream(stream);

        return bitmap;
    }

    @Override
    protected void onPostExecute(Bitmap result) {           
        super.onPostExecute(result);

        iv.setImageBitmap(result);          

    }

progress.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            progress.setVisibility(progress.GONE);
            adapter = new ImageAdapter(getApplicationContext(), R.layout.show_image,imagenames); 

            listview.setAdapter(adapter);
            adapter.notifyDataSetChanged();

            }
    });
4

1 に答える 1