2014-03-19 6 views
0

나는 퍼지를 사용하여 안드로이드 애플 리케이션을 만들려고합니다. (아직 전체 퍼지 계산을해야합니다.) 그래서 계산은 PHP로 이루어집니다. 초보자를 위해 나는 PHP에서 처음으로 간단한 계산을하고 안드로이드에 보내려고했다. 하지만 아무런 오류도 보이지 않습니다.PHP에서 변수가 안드로이드에 표시되지 않습니다 (json을 사용)

여기 내 PHP 코드 calc.php

 <?php 

$calcresult = 56 * 100 * 2051/49; 

echo json_encode($calcresult); 
?> 

을의 간단한 예제이 내가 안드로이드 응용 프로그램을 실행할 때 내 자바 코드 JSONActivity.class이

package com.example.ta2; 
import java.io.BufferedReader; 
import java.io.InputStream;import java.io.InputStreamReader; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.json.JSONArray; 
import org.json.JSONObject; 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 
import android.widget.Toast; 

public class AturanKonsumsi extends Activity { 
    private JSONObject jObject; 

     private String xResult =""; 
    private String url = "http://10.0.2.2/calc.php"; 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.daftarmakanan); 
      TextView txtResult = (TextView)findViewById(R.id.TextViewResult); 
      xResult = getRequest(url); 
      try { 
       parse(txtResult); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } 
     private void parse(TextView txtResult) throws Exception { 
      jObject = new JSONObject(xResult); 

      JSONArray menuitemArray = jObject.getJSONArray("calcresult"); 
      String sret=""; 
     for (int i = 0; i < menuitemArray.length(); i++) { 
       System.out.println(menuitemArray.getJSONObject(i) 
         .getString("calcresult").toString()); 
       sret +=menuitemArray.getJSONObject(i).getString(
         "calcresult").toString()+"\n"; 
     } 
     txtResult.setText(sret); 
    } 

     public String getRequest(String Url){ 

      String sret=""; 
      HttpClient client = new DefaultHttpClient(); 
      HttpGet request = new HttpGet(Url); 
      try{ 
      HttpResponse response = client.execute(request); 
       sret =request(response); 

      }catch(Exception ex){ 
       Toast.makeText(this,"Gagal "+sret, Toast.LENGTH_SHORT).show(); 
     } 
      return sret; 

    } 

     public static String request(HttpResponse response){ 
        String result = ""; 
        try{ 
         InputStream in = response.getEntity().getContent(); 
         BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
        StringBuilder str = new StringBuilder(); 
        String line = null; 
        while((line = reader.readLine()) != null){ 
         str.append(line + "\n"); 
        } 
         in.close(); 
         result = str.toString(); 
        }catch(Exception ex){ 
         result = "Error"; 
        } 
        return result; 
       } 
       } 

가 표시되지 않습니다이다 $ calcresult의 값이며 오류가 없습니다. 당신의 도움을 주셔서 감사합니다

답변

1

calcresult 귀하의 PHP 스크립트가 생산하는 json에 의해 참조되지 않습니다. 출력을 확인하십시오. 자바 코드를 작동 시키려면 다음과 같이 json을 생성해야합니다.

<?php 
    $calcresult = 56 * 100 * 2051/49; 
    $json = array('calcresult' => array($calcresult)); 
    echo json_encode($json); 
?> 

또는 java를 단순화 할 수 있습니다.

+0

감사합니다. 나는 그것을 시도했지만 여전히 아무것도 표시하지 않습니다. 아직 오류가 없습니다. – wita

+1

nvm Java 코드가 수정되어 작동했습니다! 감사! – wita

관련 문제