1

私は本当に速く解決する問題があります:)私はこのコードを持っています:

loginBtn.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            HttpRequest hr = new HttpRequest();
            String response = hr.LoginRequest(emailText.getText().toString(), pwdText.getText().toString());
            res.setText(response);
            res.setVisibility(0);

            if(response.equals("pr_code_0101")) {
                Login.this.startActivity(bcard_intent);
            }
        }
    });

startActivityが失敗し、アプリケーションがクラッシュします。問題は次のとおりです。アクティビティが開始する2行のコードを削除すると、私が作成したカスタムクラスであるLoginRequestを含むHttpRequestです...

Httpのコード

public String LoginRequest(String email, String password)
{
    List<NameValuePair> nvp = new ArrayList<NameValuePair>(3);
    nvp.add(new BasicNameValuePair("email", email));
    nvp.add(new BasicNameValuePair("password", password));
    nvp.add(new BasicNameValuePair("hash_app", hash_code));

    return Set("******/loginrequest.php", nvp);
}

public String Set(String url,List<NameValuePair> list)
{
     StringBuilder builder = new StringBuilder();
     HttpClient client = new DefaultHttpClient();
     HttpPost httpPost = new HttpPost(url);

     try {
        httpPost.setEntity(new UrlEncodedFormEntity(list));
        HttpResponse response = client.execute(httpPost);

        HttpEntity entity = response.getEntity();
        InputStream content = entity.getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(content));
        String line;
        while ((line = reader.readLine()) != null)
        {
           builder.append(line);
        } 

        reader.close();
        content.close();

     }
     catch (ClientProtocolException e) {
         return e.toString();
     }
     catch (IOException e) {
         return e.toString();
    }

     return builder.toString();
}

どうすれば問題を解決できますか?

ここにlogcat:

 01-20 11:25:42.824: E/AndroidRuntime(274): java.lang.RuntimeException: Unable to start activity ComponentInfo{name.printernet.app/name.printernet.app.BCard}: android.view.InflateException: Binary XML file line #7: Error inflating class <unknown>
4

1 に答える 1

0

HTTP リクエストを最初に配置する前に、接続マネージャーを使用して、いずれかに接続しているかどうかを確認してください。

Wi-Fi

また

この 1 つを確認するモバイル データは、マニフェスト ファイルに次のアクセス許可を追加します。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

次に、クラスでその可用性を確認します

    ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

//mobile
State mobile = conMan.getNetworkInfo(0).getState();

//wifi
State wifi = conMan.getNetworkInfo(1).getState();

そして、そのように使用します:

if (mobile == NetworkInfo.State.CONNECTED || mobile == NetworkInfo.State.CONNECTING) {
    //mobile
} else if (wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING) {
    //wifi
}

その後、送信HTTPリクエストを送信します。HTTPリクエストには、wifiやモバイルネットワークなどのドライバーが必要であり、情報を持って彼を外の世界に連れて行く必要があるため、これが役立つことを願っています

于 2013-01-20T11:18:58.547 に答える