2017-06-26 78 views
1

我正在使用Android的Kotlin代码创建一个用于检查用户名和密码的Activity。我正在使用凌空来做到这一点。我使用这个功能在我的MainActivity做到这一点:创建一个活动登录

private fun checking(){ 

     val name: String = editText?.text.toString() 
     val password: String = editText2?.text.toString() 

     val stringRequest = object : StringRequest(Request.Method.POST, 192.168.1.50, 
       Response.Listener<String> { 
        response -> 
        try { 
         val obj = JSONObject(response) 
         Toast.makeText(applicationContext, obj.getString("message"), Toast.LENGTH_LONG).show() 
        } catch (e: JSONException) { 
         e.printStackTrace() 
        } 
       }, 
       object : Response.ErrorListener { 
        override fun onErrorResponse(volleyError: VolleyError) { 
         Toast.makeText(applicationContext, volleyError.message, Toast.LENGTH_LONG).show() 
        } 
       }) { 
      @Throws(AuthFailureError::class) 
      override fun getParams(): Map<String, String> { 
       val params = HashMap<String, String>() 
       params.put("name", name) 
       params.put("password", password) 
       return params 
      } 
     } 
     VolleySingleton.instance?.addToRequestQueue(stringRequest) 
    } 

这是我的PHP代码:

<?php 

define('HOST', 'localhost'); 
define('USER', '***'); 
define('PASS', '***'); 
define('DB', '***'); 

$con = mysqli_connect(HOST,USER,PASS,DB); 

$name = $_POST['name']; 
$password = $_POST['password']; 

$sql = "select * from *** where name = '$name' and password = '$password';"; 

$res = mysqli_query($con,$sql); 
$check = mysqli_fetch_array($res); 

if(isset($check)){ 
echo 'success'; 
} 
else{ 
echo 'failure'; 
} 

mysqli_close($con); 
?> 

其实我想要的只是,如果我把正确的名称和密码,所以我会进入Php echo 'success';我想在我的功能checking一种吐司,这将说成功的连接。我尝试但我不知道如何修改我的代码。非常感谢您的建议!

回答

1

我不知道kotlin但只是在这种情况下,你可以在这里做出的是java代表制作吐司。

Toast toast = Toast.makeText(getApplicationContext(), "successful connection", Toast.LENGTH_SHORT).show; 

您需要导入android.widget.Toast 有关详细信息和培训参观offcial网站here

编辑 那么我已经说过我不知道kotlin,但也许试试这个代码。

private fun checking(){ 

     val name: String = editText?.text.toString() 
     val password: String = editText2?.text.toString() 
     val temp: String ="pass" //Creating a new string I dont know if it is dont this way 


     val stringRequest = object : StringRequest(Request.Method.POST, 192.168.1.50, 
       Response.Listener<String> { 
        response -> 
        try { 
         val obj = JSONObject(response) 
         Toast.makeText(applicationContext, obj.getString("message"), Toast.LENGTH_LONG).show() 
        } catch (e: JSONException) { 
         e.printStackTrace() 
        } 
       }, 
       object : Response.ErrorListener { 
        override fun onErrorResponse(volleyError: VolleyError) { 
         Toast.makeText(applicationContext, volleyError.message, Toast.LENGTH_LONG).show() 
         temp="fail" //Setting the temp string to fail. dont know if it dont this way either 
        } 
       }) { 
      @Throws(AuthFailureError::class) 
      override fun getParams(): Map<String, String> { 
       val params = HashMap<String, String>() 
       params.put("name", name) 
       params.put("password", password) 
       return params 
      } 
     } 
     if(temp.isEqual("pass")) // checkig if temp was changed or not 
     { 
     Toast toast = Toast.makeText(getApplicationContext(), "successful connection", Toast.LENGTH_SHORT).show; 
     } 
     VolleySingleton.instance?.addToRequestQueue(stringRequest) 
    } 

请不要指出,如果我的synatx是错的。我不知道Kotlin的K。

+0

由于这条线,但在那里我可以有我的代码添加呢? –

+0

已编辑。也许这可能有帮助。 – Rishav

0

在你的情况要进行ToastKotlin语法是:

Toast.makeText([email protected],obj.getString("message"),Toast.LENGTH_SHORT).show() 

替换现有的吐司线