2014-04-26 2 views
1

반환 값이있는 문자열이 있습니다. 반환 값을 편집 텍스트의 텍스트와 비교하려고합니다. 하지만이 작업을 수행 할 수 없습니다.edittext 값을 문자열로 정의합니다.

public static String login (String a) 
     { 
      String Pass = null; 
      InputStream is = null; 
      String result = ""; 
      ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
      nameValuePairs.add(new BasicNameValuePair("UName", a)); 

      try{ 
        HttpClient httpclient = new DefaultHttpClient(); 
        HttpPost httppost = new HttpPost(LoginAddress); 
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
        HttpResponse response = httpclient.execute(httppost); 
        HttpEntity entity = response.getEntity(); 
        is = entity.getContent(); 

      }catch(Exception e){ 

       Log.e("log_tag", "Error in http connection "+e.toString()); 
       Pass = "Error Connection"; 
      } 

      //convert response to string 
      try{ 
        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
        StringBuilder sb = new StringBuilder(); 
        String line = null; 
        while ((line = reader.readLine()) != null) { 
          sb.append(line + "\n"); 
        } 
        is.close(); 
        result=sb.toString(); 
      }catch(Exception e){ 
        Log.e("log_tag", "Error converting result "+e.toString()); 
        Pass = "Convert Error"; 
      } 
      //parse json data 
      try{ 
        JSONArray jArray = new JSONArray(result); 
        for(int i=0;i<jArray.length();i++){ 

         JSONObject json_data = jArray.getJSONObject(i); 
          Log.i("log_tag", "UPWord: "+json_data.getString("UPWord")); 
          Pass = json_data.getString("UPWord"); 

        } 
      }catch(JSONException e){ 
        Log.e("log_tag", "Error parsing data "+e.toString()); 
        Pass = "Wrong Username or Password"; 
      } 

      return Pass; 
     } 

와 내가 같이 호출 : 내 코드는 다음과 같다.

내가, 사용자 이름 1과 passwordd1, 그것은 Username1.getText()와 함께 잘 작동이 edittexts을 정의
 public void onClick(View v) 
     { 
      StrictMode.setThreadPolicy(policy); 

      EditText Username = (EditText) findViewById(R.id.Usernme1); 
      EditText Password = (EditText) findViewById(R.id.Passwordd1); 


      String Result = DownLeftFragment.login(Username.getText().toString()); 

      if (Result == Password.getText().toString()) 
      { 
       Intent intent = new Intent(MainActivity.this,HomePage.class); 
       startActivity(intent); 
      } 
      else if (Result == "Wrong Username or Password") 
      { 
       Toast.makeText(MainActivity.this, "Wrong Username or Password", Toast.LENGTH_SHORT).show();  
      } 
      else if (Result == "Error Connection") 
      { 
       Toast.makeText(MainActivity.this, "Error in network connection", Toast.LENGTH_SHORT).show();   
      } 
      else if (Result == "Convert Error") 
      { 
       Toast.makeText(MainActivity.this, "Error in app", Toast.LENGTH_SHORT).show();  
      } 
      else 
      { 
       Toast.makeText(MainActivity.this, Result, Toast.LENGTH_SHORT).show();  

      } 

     } 

toString()를 , passwordd1과는 다릅니다.

(if)가 (else if) 모두와 잘 작동합니다.

+3

문자열에'== '연산자를 사용하지 마십시오

if (Result == Password.getText().toString()) { Intent intent = new Intent(MainActivity.this,HomePage.class); startActivity(intent); } else if (Result == "Wrong Username or Password") { Toast.makeText(MainActivity.this, "Wrong Username or Password", Toast.LENGTH_SHORT).show(); } else if (Result == "Error Connection") { Toast.makeText(MainActivity.this, "Error in network connection", Toast.LENGTH_SHORT).show(); } else if (Result == "Convert Error") { Toast.makeText(MainActivity.this, "Error in app", Toast.LENGTH_SHORT).show(); } 

쓰기

if (Result.equals(Password.getText().toString())) { Intent intent = new Intent(MainActivity.this,HomePage.class); startActivity(intent); } else if (Result.equals("Wrong Username or Password")) { Toast.makeText(MainActivity.this, "Wrong Username or Password", Toast.LENGTH_SHORT).show(); } else if (Result.equals("Error Connection")) { Toast.makeText(MainActivity.this, "Error in network connection", Toast.LENGTH_SHORT).show(); } else if (Result.equals("Convert Error")) { Toast.makeText(MainActivity.this, "Error in app", Toast.LENGTH_SHORT).show(); } 

+0

사용 if (Result.equals (Password.getText(). toString()) – Onik

+0

대단히 감사합니다. –

답변

2

으로

그냥 교체합니다. `myString.equals ("Something")`
0

마찬가지로 @Bob Malooga는 == 대신 문자열 비교에 equals을 사용할 것을 제안했습니다.

If (_Password.getText().toString().trim().equals("Wrong Username or Password")) 
{ 

//your code 

} 

else 
{ 
Toast.makeText(MainActivity.this, "Wrong Username or Password", Toast.LENGTH_SHORT).show();  

} 
관련 문제