-2

ArrayList<>を文字列に変換する方法..。

詳細:

ステップ1:電子メールアドレスをphp mySqlデータベースに送信しますステップ2:電子メールアドレスがデータベースコンテンツと一致する場合、エコー成功ステップ3:phpエコー値を取得しました(「成功」)ステップ4:応答を文字列に割り当てますphpEchoedValステップ5:phpEchoedValを「成功」ステップ6:sdカードにメールを書き込む

これは大丈夫ですか//url=メールアドレス

ArrayList nameValuePair = new ArrayList(1);

    nameValuePair.add(new BasicNameValuePair("url", url));

  try {
        //open an httpclient connection

        HttpClient httpclient = new DefaultHttpClient();

        HttpPost httppost = new HttpPost(strLink);

        httppost.setEntity(new UrlEncodedFormEntity(data));


            //response retrieve "success" echoed from server

        ResponseHandler<String> handleResponse = new BasicResponseHandler();

            //converts server response to string.

        String phpEchoVal = httpclient.execute(httppost, handleResponse);


        txtInfo.setText(phpEchoVal);

        String containEmail = txtInfo.getText().toString();



            //compare response from server with local string

            // if successful write email to sd card

        if ((containEmail.equals("success"))){

            //create a new text file

            File myFile = new File("/sdcard/moLarouteReg.txt");

            myFile.createNewFile();

            FileOutputStream fOut = new FileOutputStream(myFile);

            OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);

            myOutWriter.append(containEmail);

            //close writer
            myOutWriter.close();

        fOut.close();

        //Open menu

          Intent openMenu = new Intent("com.molaroute.mu.Menu");

            startActivity(openMenu);

            finish();

        Log.d("test","fileWritten: "+myOutWriter);

        }else {



            ...
        }
   }
4

2 に答える 2

2
ArrayList<MyType> l = new ArrayList<MyType>();
// fill

System.out.println(l.toString());
于 2012-05-24T11:02:49.313 に答える
2

あなたの最初の質問のために; 配列リスト(名前と値のペアのオブジェクトを含む)内の文字列を他の文字列と照合する方法:

    ArrayList<NameValuePair> lst = new ArrayList<NameValuePair>(); //Instantiate arraylist
    lst.add(new BasicNameValuePair("fruit", "apple")); //add entry
    lst.add(new BasicNameValuePair("animal", "monkey")); //add entry
    String strToCompareAgainst = "apple"; //str to compare to for example
    for(NameValuePair valPair : lst) { //foreach loop
        if(valPair.getValue().equals(strToCompareAgainst)) { //retrieve value of the current NameValuePair and compare
            Log.d("login","moooooo"); //success
        }
    }

等しいかどうかをチェックする代わりに、テキストに別のテキストが含まれているかどうかをチェックすることもできます。

String str1 = "I am a success";
String str2 = "success";

if(str1.contains(str2)) {}  //Evaluates to true, because str1 contains the word "success"

if(str1.equals(str2)) {} //Evaluates to false, because str1 does not hold the same value as str2

もちろん、もっとたくさんのことができますが、これで基本的な考え方がわかります。

2番目の質問:

HttpClient.execute()はHttpResponseを返します。HttpResponseから、HttpEntityを返すgetEntityを呼び出すことができます。HttpEntityから、InputStreamを返すgetContentを呼び出すことができます。

このInputStreamは、文字列に変換できます。変換コードスニペットの例は、ネット上で広く公開されています。

したがって、コード:

httpResponse = client.execute(post, _httpContext);
        //Set the response code from the request's responst.
        setResponseCode(httpResponse.getStatusLine().getStatusCode());
        //Retrieve the body of the response.
        entity = httpResponse.getEntity();

        if(entity != null) {
            //Retrieve the content from the body.
            _inStream = entity.getContent();
            //Convert the InputStream to String and set the String response to the returned value.
            setStringResponse(IOUtility.convertStreamToString(_inStream));
            //Close the InputStream.
            Log.d(TAG, getStringResponse());
        }   

この場合、IOUtilityは自己記述クラスであることに注意してください。HttpResponseを文字列に変換する方法は他にもあると思いますが、これが私のやり方です。

_inStreamはInputStream、エンティティはHttpEntity、残りは自明である必要があります。

于 2012-05-24T11:37:50.920 に答える