1

私は、他の開発者が使用する API クラスに取り組んでいます。my 関数の 1 つに ImageView 配列があり、これをダウンロードして、開発者が使用できるように静的 ArrayList に割り当てます。

インターネットから ImageViews を取得するために、非同期メソッドでダウンロードするクラスを使用しています。私の問題は、リソースからの ID で ImageView を初期化せず、ImageView imgView = new ImageView(activity); で初期化する場合です。//アクティビティは呼び出し元のクラスによって渡されます。この関数を呼び出すアクティビティで画像を使用/表示できません。

私のコードの一部:

これは私のAPIクラスの関数です(アクティビティではありません)

JSONArray banners = new JSONArray(result);

if(banners != null)
{
    for(int i = 0; i <    banners.length(); i++)
{
//ImageView imgView =(ImageView)activity.findViewById(R.id.imageView3); 
ImageView imgView = new ImageView(activity);

JSONObject jsonObjRecv = banners.getJSONObject(i);

String ImageUrl = jsonObjRecv.getString("image"); 

ImageLoad downloader = new ImageLoad(imgView);                                  
downloader.execute(ImageUrl);

imageViewsArray.add(imgView);

主な活動:

ImageView imView = (ImageView)findViewById(R.id.imageView3);
imView = AlbosBanners.imageViewsArray.get(0);

ハンドラーがダウンロードが終了したというメッセージを送信するときに行うコードのこの部分ですが、アクティビティの画像ビューには、ダウンロードされた画像ビューではなく、何も表示されません。imageView3 は、MainActivity コンテンツ xml の imageview の ID です。

注: 関数でこの行を使用する場合:

ImageView imgView =(ImageView)activity.findViewById(R.id.imageView3); 

それは働いています。

明確にするために-APIでは、それが使用されるアプリケーションのアクティビティとxmlを知りません。明確に説明したいと思います。私は何を間違っていますか?

4

1 に答える 1