2016-08-05 2 views
-5
protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     try 
     { 
      float number; 
      Integer pageno=0; 
      list=new ArrayList<HashMap<String, String>>(); 
      listhdr=new ArrayList<HashMap<String, String>>(); 
      JSONArray jsonarray = new JSONArray(result); 

      if(jsonarray.length()>1000) 
      { 
       /* number=jsonarray.length()/1000; 
       if(number>1.0) 
       { 
        pageno=(int)+0.99f; 

       }*/ 
       pageno=500; 
       Toast.makeText(getApplicationContext(),"PageNo1: "+ pageno.toString(),Toast.LENGTH_LONG).show(); 
      } 

      else 
      { 
       pageno=jsonarray.length(); 
       Toast.makeText(getApplicationContext(),"PageNo2: "+ pageno.toString(),Toast.LENGTH_LONG).show(); 
      } 

       for (int i = 0; i < pageno; i++) { 
        JSONObject jsonobj = jsonarray.getJSONObject(i); 
        String EntryDate = jsonobj.getString("EntryDate"); 
        String Ourrefno = jsonobj.getString("Ourrefno"); 
        String Buyer = jsonobj.getString("buyer"); 
        String Styleno = jsonobj.getString("Styleno"); 

1.Iにjsonarrayから最初の100 jsonobjectを取得する親切
2.Iがページformat.soにこれらの要素が表示されます。この問題を解決するために私を助けて私はそれぞれ500に分割したい。は7000以上values.soとJSON配列を持っているかアンドロイド

+1

のようないくつかのチュートリアルをGoogleに良く、概略のみです:

@Get("url") Observable<ArrayList<MyPojo>> getPojos(); 

とメインの呼び出しは次のようになりますデータをフェッチしている間にあなたのforループに100の限界を置くために –

+0

私はすでにそれを試しています。しかし、レンダリングの問題があります。1000以上の値を取ることはできません。ソリューションはありますか? –

+0

あなたのjsonが正しくない可能性がありますか?正確にどこに問題がありますか?この質問は明確ではありません.... –

答えて

-2

rxJava、dudeを使用してください。 レトロフィット2.0で使用する方が便利です。改造インタフェースで

方法は、次のようになります。単にあなたが持っている

  api.getPojos() 
       .subscribeOn(Schedulers.newThread()) 
       .observeOn(AndroidSchedulers.mainThread()) 
       .take(100) 
       .subscribe(new Subscriber... 
          @Override 
          onNext(ArrayList<MyPojo> pojos){ 
            //here you pojos.getSize() == 100 
           }); 

それはthis.

+0

いくつかのコードを追加してください –

+0

おいてくれてありがとう..iそれを試してみる.. –

関連する問題