私はvolleyを使用してamazonデータベースに接続し、テーブルの特定の値を "ON"と "OFF"の間で変更しています。私はonCheckedChangedとStringRequestを使ってこれを行い、 "ON"に手動で設定されている場合は値を "OFF"に変更します。しかし、 "OFF"から "ON"に変更しようとすると、私はvolley( "com.android.volley.ServerError")からサーバーエラーが発生し、値は変更されません。私のPHPは現時点ではローカルでホストされており、ログインと登録メソッドも正常に動作します。AndroidのサーバーエラーonCheckedChangedの 'if(isChecked)'のみの場合
のJava:
ToggleButton light = (ToggleButton) findViewById(R.id.lightSwitch);
light.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, LOG_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(DiningRoom.this, response, Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(DiningRoom.this, error.toString(), Toast.LENGTH_LONG).show();
}
});
MySingleton.getInstance(DiningRoom.this).addToRequestqueue(stringRequest);
}else{
StringRequest stringRequest2 = new StringRequest(Request.Method.POST, LOG_URL2,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(DiningRoom.this, response, Toast.LENGTH_LONG).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(DiningRoom.this, error.toString(), Toast.LENGTH_LONG).show();
}
});
MySingleton.getInstance(DiningRoom.this).addToRequestqueue(stringRequest2);
}
}
});
PHP:このスクリプトは、ブラウザからロードされると 、それが正常にオフからオンに値を変更します。このエラーは、アンドロイドのボレーを通過した場合にのみ発生します。
<?php
include 'dbConnect.php';
mysqli_query($conn,"UPDATE Component SET component_status = 'ON' WHERE component_id = 10");
?>
私は、オンからオフへの切り替えを処理するための2番目のPHPファイルがあります。