0

mysql DBからいくつかのデータを取得し、テキストビューで出力しようとしています。アプリケーションで_POSTから渡されたデータを使用して行を認識するクエリを使用しています。

それは.javaです:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_calendario);

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);

    app_preferences = PreferenceManager.getDefaultSharedPreferences(this);

    LoginClass ID_P =  ((LoginClass)getApplicationContext());
    id_user = ID_P.getID();
    Log.d("id_w?",id_user);


    text = (TextView) findViewById(R.id.text_pren);
    fill_text();

}

private void fill_text(){

    try{
        httpclient = new DefaultHttpClient();
        httppost = new HttpPost("******MY URI*******");
        response = httpclient.execute(httppost);
        prenotazione = new ArrayList<NameValuePair>(1);
        prenotazione.add(new BasicNameValuePair("id_user",id_user));
        httppost.setEntity(new UrlEncodedFormEntity(prenotazione));
        Log.d("gladdi",prenotazione.toString());
        HttpEntity entity = response.getEntity();
        inputStream = entity.getContent();


        } 
        catch (Exception e){
            Toast.makeText(CalendarioActivity.this, "error"+e.toString(), Toast.LENGTH_LONG).show();
        }
            if(inputStream != null){
            Log.d("glad2",id_user);
            try{
                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                        sb.append(line + "\n");
                }
                inputStream.close();
                result = sb.toString();

                Log.d("sort",result);
            }catch(Exception e){
                Log.e("TEST", "Errore nel convertire il risultato "+e.toString());
                }
        try{
            JSONArray jArray = new JSONArray(result);
            prenotazioni = "";
            for(int i=0;i<jArray.length();i++){
                JSONObject json_pren = jArray.getJSONObject(i);
                result_string = "Prenotazione in data "+json_pren.getString("data")+", "+json_pren.getString("dettagli")+"\n\n";
                prenotazioni = prenotazioni + result_string;
                }
            }catch(JSONException e){
                Log.e("log_tag", "Error parsing data "+e.toString());
                    }   
        }else{
            //do nothing
        }

            text.setText(prenotazioni);
}//end fill_text()

...。

ブラウザでクエリを使用すると機能しますが(_POST-> _ GETを置き換えます)、アプリケーションを起動したときは機能しません...文字列"id_user"が渡されないようです...明確になったことを願っています。手伝って頂けますか?

4

1 に答える 1

0

これは単なる見落としだと思いますが、結果を得る前にパラメーターを送信すると役立ちます。

これを変える:

    response = httpclient.execute(httppost);
    prenotazione = new ArrayList<NameValuePair>(1);
    prenotazione.add(new BasicNameValuePair("id_user",id_user));
    httppost.setEntity(new UrlEncodedFormEntity(prenotazione));

これに:

    prenotazione = new ArrayList<NameValuePair>(1);
    prenotazione.add(new BasicNameValuePair("id_user",id_user));
    httppost.setEntity(new UrlEncodedFormEntity(prenotazione));
    response = httpclient.execute(httppost);
于 2012-12-06T15:32:12.320 に答える