私は、他の開発者が使用する 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を知りません。明確に説明したいと思います。私は何を間違っていますか?