2016-12-23 8 views
2

フラグメント内にspinner.setOnItemSelectedListenerを指定してJsonArrayRequestを呼び出そうとしています。しかし、それはsetOnItemSelectedListenerでJsonArrayRequestを使用する

RequestQueue requestQueue = Volley.newRequestQueue(this); 

このラインで私にエラーを与える私はボレーでnewRequestQueue(android.content.Context)は(Annonymousの android.widgetに適用することはできません

RequestQueue requestQueue = Volley.newRequestQueue(this.getActivity);

を試してみました。 AdapterView.OnItemSelectedListener)

しかしそれはうまくいかなかった。

final Spinner type = (Spinner) rootView.findViewById(R.id.spinner); 

type.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

      final int index = parent.getSelectedItemPosition(); 
      final String item_type = String.valueOf(index); 

      JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.POST, ITEM_CUSTOMER_MEASUREMENTS, null, 
        new Response.Listener<JSONArray>() { 
         @Override 
         public void onResponse(JSONArray response) { 

          try { 
           JSONObject object = new JSONObject(); 

           String shoulder = object.getString("shoulder"); 
           String arm_hole = object.getString("arm_hole"); 
           String chest_1 = object.getString("chest_1"); 
           String chest_2 = object.getString("chest_2"); 
           String waist = object.getString("waist"); 
           String hip = object.getString("hip"); 
           String slit = object.getString("slit"); 
           String top_length = object.getString("top_length"); 
           String f_neck = object.getString("f_neck"); 
           String b_neck = object.getString("b_neck"); 
           String sleeve_length = object.getString("sleeve_length"); 
           String sleeve_breadth = object.getString("sleeve_breadth"); 
           String sleeve_type = object.getString("sleeve_type"); 
           String hip_size = object.getString("hip_size"); 
           String ankle = object.getString("ankle"); 
           String bottom_length = object.getString("bottom_length"); 
           String knee = object.getString("knee"); 
           String bottom_breadth = object.getString("bottom_breadth"); 
           String thigh = object.getString("thigh"); 
           String description = object.getString("description"); 

           Log.d("response", "onResponse: " +shoulder +arm_hole +chest_1 +chest_2 +hip +slit +top_length +f_neck +b_neck +sleeve_length 
             +sleeve_breadth +sleeve_type +hip_size +ankle +bottom_length +knee +bottom_breadth +thigh +description); 

           SharedPreferences sharedPreferences = getActivity().getSharedPreferences("itemDetails", Context.MODE_PRIVATE); 
           SharedPreferences.Editor editor = sharedPreferences.edit(); 
           editor.putString("shoulder", shoulder); 
           editor.putString("arm_hole", arm_hole); 
           editor.putString("chest_1", chest_1); 
           editor.putString("chest_2", chest_2); 
           editor.putString("waist", waist); 
           editor.putString("hip", hip); 
           editor.putString("slit", slit); 
           editor.putString("top_length", top_length); 
           editor.putString("f_neck", f_neck); 
           editor.putString("b_neck", b_neck); 
           editor.putString("sleeve_length", sleeve_length); 
           editor.putString("sleeve_breadth", sleeve_breadth); 
           editor.putString("sleeve_type", sleeve_type); 
           editor.putString("hip_size", hip_size); 
           editor.putString("ankle", ankle); 
           editor.putString("bottom_length", bottom_length); 
           editor.putString("bottom_breadth", bottom_breadth); 
           editor.putString("knee", knee); 
           editor.putString("thigh", thigh); 
           editor.putString("description", description); 
           editor.apply(); 

          } catch (JSONException e) { 
           e.printStackTrace(); 
          } 

         } 
        }, 
        new Response.ErrorListener() { 
         @Override 
         public void onErrorResponse(VolleyError error) { 

         } 
        }){ 
       @Override 
       public Map<String, String> getHeaders() throws AuthFailureError { 
        Map<String,String> headers = new HashMap<>(); 
        headers.put("Authorization", api_token); 
        headers.put("X-Request-ID", cust_id); 
        headers.put("X-Requested-With", item_type); 
        return headers; 
       } 
      }; 

      //Creating request queue 
      RequestQueue requestQueue = Volley.newRequestQueue(this); 

      //Adding request to the queue 
      requestQueue.add(jsonArrayRequest); 

      final SharedPreferences sharedPrefer = getActivity().getSharedPreferences("itemDetails", Context.MODE_PRIVATE); 
      final String arm_hole = sharedPrefer.getString("arm_hole",""); 
      final String chest_1 = sharedPrefer.getString("chest_1",""); 
      final String chest_2 = sharedPrefer.getString("chest_2",""); 
      final String waist = sharedPrefer.getString("waist",""); 
      final String hip = sharedPrefer.getString("hip",""); 
      final String slit = sharedPrefer.getString("slit",""); 
      final String top_length = sharedPrefer.getString("top_length",""); 
      final String f_neck = sharedPrefer.getString("f_neck",""); 
      final String b_neck = sharedPrefer.getString("b_neck",""); 
      final String sleeve_length = sharedPrefer.getString("sleeve_length",""); 
      final String sleeve_breadth = sharedPrefer.getString("sleeve_breadth",""); 
      final String sleeve_type = sharedPrefer.getString("sleeve_type",""); 
      final String hip_size = sharedPrefer.getString("hip_size",""); 
      final String ankle = sharedPrefer.getString("ankle",""); 
      final String bottom_length = sharedPrefer.getString("bottom_length",""); 
      final String bottom_breadth = sharedPrefer.getString("bottom_breadth",""); 
      final String knee = sharedPrefer.getString("knee",""); 
      final String thigh = sharedPrefer.getString("thigh",""); 
      final String shoulder = sharedPrefer.getString("shoulder",""); 

      switch (index){ 
        /* 
        * Nothing is selected 
        * */ 
       case 0: 
        break; 
        /* 
        * item1 is selected 
        * */ 
       case 1: 
        break; 
        /* 
        * item2 is selected 
        * */ 
       case 2: 
        break; 
        /* 
        * item3 is selected 
        * */ 
       case 3: 
        break; 
        /* 
        * item4 is selected 
        * */ 
       case 4: 
        break; 
        /* 
        * item5 is selected 
        */ 
       case 5: 
        break; 
        /* 
        * item6 is selected 
        * */ 
       case 6: 
        break; 
        /* 
        * item7 is selected 
        * */ 
       case 7: 
        break; 
        /* 
        * item8 is selected 
        * */ 
       case 8: 
        /* 
        * item9 is selected 
        * */ 
        break; 
      } 

     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 
+1

上でそれを初期化する必要がありますか?アクティビティや断片で?それは何の名前ですか? –

+0

オペラは断片だと言っています。 – captainblack

+0

@captainblackうん、私が逃した正しい。それを指摘してくれてありがとう:) –

答えて

5

なぜこのエラーは

来たあなたはVolley.newRequestQueue(...)の構文に見れば、それはContextクラスの一つの引数を取ります。だからここではandroid.widget.AdapterView.OnItemSelectedListenerContextクラスではない(すなわち、Contextから派生したものではない)。クラスandroid.widget.AdapterView.OnItemSelectedListenerの内部では、方法Volley.newRequestQueue(...)に渡すにはActivityまたはActivity from Fragmentの参照が必要です。


だからあなたのコードは

RequestQueue requestQueue = Volley.newRequestQueue(ActivityClassName.this); 

または

RequestQueue requestQueue = Volley.newRequestQueue(FragmentClassName.this.getActivity()); 

良いだろうアプリケーションコンテを渡すことです

Volley.newRequestQueue(ActivityClassName.this.getApplicationContext())またはVolley.newRequestQueue(FragmentClassName.this.getActivity().getApplicationContext());

0

としてXTは、あなたはonCreateView()メソッドは、このコードを書いている

 public RequestQueue requestQueue; 
     requestQueue = Volley.newRequestQueue(getActivity()); 
関連する問題