2013-08-29 4 views
0

Hello M은 내 안드로이드 응용 프로그램에서 json 파싱을 사용합니다. 웹 서비스를 위해 PHP를 사용하는 M. M 서버에서 스피너에 값 가져 오기. 이제는 특정 회 전자 ID를 다시 서버로 보내려합니다. 어떻게 보내 주시겠습니까? Thnaks안드로이드에서 JSON 웹 서비스를 사용하여 서버에 스피너 ID를 보내는 방법

내 코드

class GetProviderName extends AsyncTask<String, Void, Boolean> 
{ 


    protected void onPreExecute() 
    { 
     // TODO Auto-generated method stub 
     super.onPreExecute(); 

     pd2=ProgressDialog.show(NewSales.this, "Loading", "Please wait"); 
    } 


    @Override 
    protected Boolean doInBackground(String... params) { 
     // TODO Auto-generated method stub 





      try 
      { 
       HttpClient httpclient = new DefaultHttpClient(); 

       HttpGet httppost = new HttpGet(params[0]); 
       HttpResponse response = httpclient.execute(httppost); 
       HttpEntity entity = response.getEntity(); 
       view_rates = EntityUtils.toString(entity, HTTP.UTF_8); 
       System.out.println(view_rates); 





       JSONArray jarray=new JSONArray(view_rates); 
       System.out.println("Jarray Length:"+jarray.length()); 

     if(jarray.length()==0) 
     { 
      norecord=true; 
     } 
     else 
     { 
      for(int i=0;i<jarray.length();i++) 
      { 
       JSONObject jbnew=jarray.getJSONObject(i); 

       int provider_id=Integer.valueOf(jbnew.getString("voucher_provider_id")); 

       String voucher_provider_name=jbnew.getString("voucher_provider_name"); 
       Provider_structuer provider_dt=new Provider_structuer(); 
       provider_dt.setProvider_id(provider_id); 
       provider_dt.setProvider_name(voucher_provider_name); 
       all_provider_val.add(provider_dt); 
       provider_names.add(voucher_provider_name); 


       //jbnew.put("voucher_provider_id", provider_shop_names.getSelectedItem().toString()); 

      } 
     } 
     System.out.println("provider names" +provider_names.size()); 
     System.out.println("provider nshpos" +all_provider_val.size()); 



     return true; 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
     return false; 
    } 
} 



    @Override 
    protected void onPostExecute(Boolean result) 
    { 
     // TODO Auto-generated method stub 
     super.onPostExecute(result); 
     pd2.dismiss(); 
     if(result) 
     { 
      ArrayAdapter<String>myadapter=new ArrayAdapter<String>(NewSales.this,android.R.layout.simple_spinner_dropdown_item,provider_names); 
      provider_shop_names.setAdapter(myadapter); 
     } 
     else 
     { 
      provider_shop_names.setAdapter(null); 
      Toast.makeText(NewSales.this,"Sorry problem with connection.",Toast.LENGTH_LONG).show(); 
     } 

    } 
} 

답변

0

하면 provider_names이 이름을 보유하고 all_provider_val 해당 값이, 당신이 당신의 회 전자에 setOnItemSelectedListener를 사용할 수 있습니다. 선택한 항목의 위치를 ​​가져올 수 있습니다. 그런 다음 해당 위치를 사용하여 all_provider_val 목록에서 값을 가져옵니다. 뭐 그런 :

ArrayAdapter<String>myadapter=new ArrayAdapter<String>(NewSales.this,android.R.layout.simple_spinner_dropdown_item,provider_names); 
provider_shop_names.setAdapter(myadapter); 

provider_shop_names.setOnItemSelectedListener(new OnItemSelectedListener() { 
    @Override 
    public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id){ 
     String selectedValue = all_provider_val.get(position); 
     //then return selectedValue to the web service 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parentView) {} 
}); 
0

OnItemSelectedListener 이벤트 핸들러 &에서 클릭 스피너 항목 ID가 서버로 다시 보내하기. 보내기의 경우 HTTP POST을 사용할 수 있습니다.

// http post 
     try { 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost(urlStr); 
      httppost.setEntity(new UrlEncodedFormEntity(orderJson)); 
      HttpResponse response = httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      is = entity.getContent(); 

     } catch (Exception e) { 
     } 

     // convert response to string 
     try { 
      BufferedReader reader = new BufferedReader(
        new InputStreamReader(is, "iso-8859-1"), 8); 
      sb = new StringBuilder(); 
      sb.append(reader.readLine() + "\n"); 
      String line = "0"; 
      while ((line = reader.readLine()) != null) { 
       sb.append(line + "\n"); 
      } 
      is.close(); 
      // response 
      result = sb.toString(); 
     } catch (Exception e) { 
      Toast.makeText(getApplicationContext(), "Order not submitted!", 
        Toast.LENGTH_SHORT).show(); 
     } 
+0

PLZ 도와 – user2306201

+0

"orderJson을"orderJson 통해 UR 코드에서 무엇을 내가 서버에 보낼 무엇인가 : 다음은 HTTP POST를 사용하여 서버에 데이터를 전송하는 코드 샘플입니다. 'List orderJson = new ArrayList (); \t \t \t orderJson.add (새 BasicNameValuePair ("order", json))); ' 'json'을 회 전자 ID로 바꿉니다. –

관련 문제