2016-10-02 83 views
0

我正在做一個登錄活動,它需要兩個參數id和密碼。 我通過服務器上的php API進行檢查,在正確的登錄憑證上進行響應成功。我想切換活動,如果我的文本=「成功」在我的textview(命名結果),它不工作。 我也試過了,通過在requestqueue後面添加下面的check(comment),仍然不起作用。 如果我的方法不正確,請告訴我最簡單的方法來完成這項任務。切換服務器響應的活動

package com.example.nigam.quiz; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

import com.android.volley.AuthFailureError; 
import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.JsonObjectRequest; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONException; 
import org.json.JSONObject; 

import java.util.HashMap; 
import java.util.Map; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     Button login=(Button)findViewById(R.id.button); 
     Button register=(Button)findViewById(R.id.button5); 
     final EditText userid = (EditText) findViewById(R.id.editText); 
     final EditText password= (EditText) findViewById(R.id.editText2); 
     final TextView result=(TextView)findViewById(R.id.textView); 
     Button startq= (Button) findViewById(R.id.button3); 
     final String url="http://192.168.44.223/Quiz/login.php"; 
     final RequestQueue requestQueue= Volley.newRequestQueue(getApplicationContext()); 
     login.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       final JSONObject jsonObject = new JSONObject(); 
       try { 
        jsonObject.put("userid",userid.getText().toString()); 
        jsonObject.put("password",password.getText().toString()); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
       StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         result.setText(response.toString()); 

         if(result.getText().toString()=="Success") 
         { 
          Intent i=new Intent(MainActivity.this,Begins.class); 
          startActivity(i); 
         } 

        } 
       }, new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 

        } 
       }) 
       { 
        protected Map<String,String> getParams() throws AuthFailureError{ 
         Map<String,String> parameters = new HashMap<String,String>(); 
         parameters.put("creden",jsonObject.toString()); 
         return parameters; 

        } 

       }; 

       requestQueue.add(stringRequest); 
       /* 
       if(result.getText().toString()=="Success") 
         { 
          Intent i=new Intent(MainActivity.this,Begins.class); 
          startActivity(i); 
         } 
       */ 

      } 
     }); 

     startq.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent i=new Intent(MainActivity.this,Begins.class); 
       startActivity(i); 
      } 
     }); 


     register.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent i=new Intent(MainActivity.this,Main2Activity.class); 
       startActivity(i); 
      } 
     }); 



    } 
} 
+0

「它不工作」是什麼意思?當你運行你的應用時會發生什麼? –

+1

可能的重複[如何比較Java中的字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

+0

爲什麼不比較'response'?當您立即開始一個新的活動並且結果 –

回答

0

嘗試使用.equals()來比較字符串。

+0

有效時,您不需要設置TextView。非常感謝。 –

+0

但我想明白原因。 「==」和.equals有什麼不同? –

+0

看到這個http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – user23