2016-10-02 137 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