2015-03-23 3 views
-1

В моем андроида проекте у меня есть pm.class, гдеКак передать значение другому классу

try { 

      HttpResponse response = httpClient.execute(httpPost); 

      HttpEntity entity = response.getEntity(); 

      String ct = till.toString(entity); 
      Log.d("The error", TAG + " response: " + ct); 

      if (response.getStatusLine().getStatusCode() != 201) { 

       Pickerror error = new Gson().fromJson(content, 
    Pickerror.class); 
Log.e("Error1",TAG + " Error is ["+ tf.getMyname() + "], field[" 
           + error.getFill() + "], fullmessage: " 
           + error.getMessage()); 



       throw new Exception("Error is[" + error.getField() 
         + "] - " + error.getMessage()); 
      } 


      return new Gson().fromJson(content, mat.class); 

     } catch (IOException ese) { 

      Log.e("error2", 
        TAG + " exception error: " 
          + ese.getMessage()); 
     } 

     return null; 
    } 

приведенный выше код для подключения к серверу ..

И у меня есть mainActivity.class, где у меня есть код: -

protected Intent doInBackground(String... params) { 


        String tk = null; 
        Bundle data = new Bundle(); 
        try { 
         tk = pmm.us(name,partner); 

         data.putString(tk, name); 
         data.putString(tk2,partner); 

        } catch (Exception e) { 

///here I want to show 

        } 

        final Intent re = new Intent(); 
        re.putExtras(data); 
        return re; 
       } 

       @Override 
       protected void onPostExecute(Intent intent) { 
        if(?????????){ 

//I want to show the error 
        } else { 
         setResult(RESULT_OK, intent); 
         finish(); 
        } 
       } 
      }.execute(); 
     } 

Я хочу, чтобы показать ошибку pm.class (что показывает в журнале. e()) в секцию улова MainActivity.class .. Как я могу это сделать?

+0

Это не совсем понятно, что вы пытаетесь сделать. Как эти объекты связаны друг с другом? Каковы экземпляры объектов, которые вы используете, и какие операции вы пытаетесь вызвать на этих объектах? – David

+0

Ну, как сказал Дэвид, на 100% не ясно, чего вы пытаетесь достичь. Но из моего POV я бы изменил объявление метода, из которого вы хотите получить исключение (в вашем pm.class (обратите внимание: имена классов должны начинаться с букв верхнего регистра в Java)), чтобы «выбрасывать IOException». Затем вы должны удалить предложение catch и можете добавить предложение try/catch в свой mainActivity. – Christian

+0

Убедитесь, что ваша сетевая задача запущена в фоновом потоке. –

ответ

0

Ваш MainActiviy.Class

List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); 
params.add(new BasicNameValuePair("url_parameter_key", name)); 
params.add(new BasicNameValuePair("url_parameter_key", partner)); 

new NetworkRequest(new CallbackInterface() { 

     @Override 
     public void onRequestSuccess(JSONObject jsonObject) { 
      Toast.makeText(getApplicationContext(),jsonObject,toString(), 
        Toast.LENGTH_LONG).show(); 
     } 

    }, params).execute(); 

ваш pm.class

public class NetworkRequest extends AsyncTask<Void, Void, JSONObject> { 

public interface CallbackInterface { 

    public void onRequestSuccess(JSONObject jsonObject); 

} 

String rootUrl="your url"; 
private CallbackInterface callback; 


public NetworkRequest(CallbackInterface callbackInterface, 
     List<BasicNameValuePair> params, 
     ) { 
    this.callback = callbackInterface; 
    this.rootUrl =rootUrl + "/?" + URLEncodedUtils.format(params, "utf-8"); 
} 

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
} 

@Override 
protected JSONObject doInBackground(Void... params) { 

     return networkRequet(); 
} 

private JSONObject networkRequet() { 
    String result = null; 
    try { 
     HttpClient httpClient = new DefaultHttpClient(); 
     HttpGet httpGet = new HttpGet(rootUrl); 
     Log.i("url", rootUrl); 
     HttpResponse httpResponse = null; 
     if (httpGet != null) { 
      httpResponse = httpClient.execute(httpGet); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      result = EntityUtils.toString(httpEntity); 
      Log.i("Result", result); 
     } 
     return new JSONObject(result); 
    } catch (JSONException e) { 
     error = ErrorType.JSONPARSER_ERROR; 
     e.printStackTrace(); 
     return null; 
    } catch (ClientProtocolException e) { 
     error = ErrorType.UNKNOWN_ERROR; 
     e.printStackTrace(); 
     return null; 
    } catch (IOException e) { 
     error = ErrorType.IO_ERROR; 
     e.printStackTrace(); 
     return null; 
    } 
} 

@Override 
protected void onPostExecute(JSONObject result) { 
    super.onPostExecute(result); 
     callback.onRequestSuccess(result); 
} 
Смежные вопросы