2017-02-08 9 views
0

まず、ガイドhereに従って実装しました。このガイドでは、イメージを取得する静的リソースを使用しています。私のアプリケーションは、しかし、HTTP呼び出しを行い、画像へのリンクを含むJSONを取得します。 ViewPagerアダプタへのリンクを渡したいので、Glideライブラリを使用して移植することができます。それを行う方法はありますか?私は自分のコードをリンクしているわけではありません。なぜなら、異なる名前を使用しているガイドの完全なコピーだからです。ViewPagerにURLの画像を埋め込む

HTTPコール

public class JsonCallRequest 
{ 
    public static async Task<JsonValue> CallJSON(string url) 
    { 
     HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(url)); 
     request.ContentType = "application/json"; 
     request.Method = "GET"; 

     using (HttpClient client = new HttpClient()) 
     { 
      var response = await client.GetAsync(url); 
      if (response.IsSuccessStatusCode) 
      { 
       using (Stream stream = await response.Content.ReadAsStreamAsync()) 
       { 
        JsonValue jsonDoc = await Task.Run(() => JsonObject.Load(stream)); 
        return jsonDoc; 
       } 
      } 
      return null; 
     } 
    } 
+0

私たちにいくつかのコードw.r.tを示します。 httpコール。おそらくあなたを助けることができるものがあります。 –

+0

@MukulVarshney JSONが呼び出された後、コードを追加しました.JSONは文字列に変換されています。最終的に私は画像を指し示すURLに刺すように操作します。私はアダプタにURLを渡したい、その後私は残りをすることができます。 –

答えて

0

活動のサーバーへの呼び出しを行います。あなたが戻ってサーバからあなたの結果を持っていたらURLがhiddingどこ私はここでは、彼らが

何かのように見つけることができるパラメータ、jsonDocを読み出して確認するためにあなたをお勧めします:

public class test : Activity{ 
    Android.Support.V4.View.ViewPager viewPager; 

    adapterTest adapter; 

    public test(IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer) : base(javaReference, transfer) { 
    } 

    public test() { 
    } 

    protected override void OnCreate(Android.OS.Bundle savedInstanceState) { 
     base.OnCreate(savedInstanceState); 
     SetContentView(Resource.Layout.Main); 
     viewPager = FindViewById<Android.Support.V4.View.ViewPager>(Resource.Id.viewpager); 
     adapter = new adapterTest(this); 
     performCall(); 
    } 

    async void performCall() { 
     // Perform cal here 
     var result = await makeMyCall(); 

     // Figure out the structure of the result 
     Console.WriteLine(result); 

     // Sample of selecting the urls from result using Linq 
     IEnumerable<string> urls = result.Select(x => x.url); 
     adapter.Urls = urls; 
     viewPager.Adapter = adapter; 
    } 
} 

次のあなたあなたがviewpagerのアダプタを設定された次

public class adapterTest : Android.Support.V4.View.PagerAdapter { 

    Context context; 
    public adapterTest(IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer) : base(javaReference, transfer) { 
    } 

    public adapterTest() { 
     this.context = context; 
     Urls = new List<string>(); 
    } 

    public IEnumerable<string> Urls { get; set; } 

    public override int Count { 
     get { 
      return Urls.Count(); 
     } 
    } 

    public override bool IsViewFromObject(View view, Java.Lang.Object @object) { 
     throw new NotImplementedException(); 
    } 

    public override Java.Lang.Object InstantiateItem(ViewGroup container, int position) { 
     var imageView = new ImageView(context); 
     // load image with glide 
     imageView.SetImageResource(Urls.ElementAt(position)); 
     var viewPager = container.JavaCast<ViewPager>(); 
     viewPager.AddView(imageView); 
     return imageView; 
    } 
} 

あなたは、すぐに情報がHTTP呼び出し&から受信されると、アダプタに新しいプロパティUrlsを設定し、再:カスタムPagerAdapterはこのようなものを見ることができますビューページのすべてのビューを読み込みます。

関連する問題