0

こんにちは私はすべての活動でこのpostメソッドを持っています。エラーが発生した場合にわかるように、この投稿を1つのクラスにまとめるにはどうすればよいですか?それ以外の場合は、エラーメッセージをjsonとして解析します。

private boolean login(String username, String password) {
    TextView err = (TextView) findViewById(R.id.err);
    boolean status = false;
    String postData = "{\"Password\":\"" + password + "\",\"UserName\":\"" + username + "\"}";
    try {
        String domain = getString(R.string.domain);
        HttpClient httpclient = new DefaultHttpClient();
        HttpResponse response;
        HttpPost httppost = new HttpPost(domain + "login");
        StringEntity se = new StringEntity(postData.toString(), "utf-8");
        se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
        httppost.setEntity(se);
        httppost.setHeader("Accept", "application/json");
        httppost.setHeader("Content-type", "application/json");
        response = httpclient.execute(httppost);
        if (response != null) {
            HttpEntity r_entity = response.getEntity();
            String json = EntityUtils.toString(r_entity);
            JSONObject jsonobj = new JSONObject(json);
            status = jsonobj.getBoolean("result"); 
        }


    } catch (Exception e) {
        err.setText(e.getLocalizedMessage());
    }
4

2 に答える 2

0

同期してステータスを返すことができれば。ただし、あなたの質問は、非同期でステータスを取得する方法にあるようです。このような場合、次のことができます。

  1. receivePostStatus(boolean)のようなメソッドを持つインターフェイス(または基本クラス)を作成します
  2. インターフェイスを実装する(または基本クラスからサブクラス化される)ものを、doInBackground()でHTTPPOSTを実行するAsyncTaskサブクラスに渡します。
  3. 次に、AsyncTask.onPostExecuteで、myImplementer.receivedPostStatus(status)を呼び出します。
于 2012-04-25T19:34:56.913 に答える
0

utilクラスを作成します。このメソッドを静的にします

public static boolean login(String username, String password,TextView err){}

必要に応じて、コンテキストを渡すこともできます。次に、必要に応じてこのメソッドを呼び出します

util.login( username,  password,errorTextView);
于 2012-04-25T19:32:49.380 に答える