У меня возникли проблемы с отображением даты, которую я получаю из своей базы данных. Позвольте мне объяснить, что я делаю. У меня есть база данных, где есть таблица с названием rate1, которая формируется из одного столбца с именем value, который содержит двойные числа. Я намерен взять все данные в этом столбце, сделать среднее и вернуть его в свой код Java. Я хочу показать среднее значение в TextView. Моя проблема в том, что я ничего не вижу в TextView. Может ли кто-нибудь сказать мне, где я ошибаюсь, и может ли он дать мне решение моих ошибок? Теперь я добавить код: Это Average.java:Извлечь данные из базы данных в java
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class Average extends AppCompatActivity {
private TextView textViewResult;
private ProgressDialog loading;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_average);
textViewResult = (TextView) findViewById(R.id.textViewResult);
loading = ProgressDialog.show(this,"Please wait...","Fetching...",false,false);
String url = Config.DATA_URL.toString().trim();
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(Average.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void showJSON(String response){
String name="";
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY);
JSONObject collegeData = result.getJSONObject(0);
name = collegeData.getString(Config.KEY_NAME);
} catch (JSONException e) {
e.printStackTrace();
}
textViewResult.setText("Name:\t"+name);
}
}
Это Config.java:
public class Config {
public static final String DATA_URL = "https://lbstudios.000webhostapp.com/Average.php";
public static final String KEY_NAME = "value";
public static final String JSON_ARRAY = "result";
}
И это Average.php:
<?php
$connect = mysqli_connect("********", "********", "********", "*******");
$response = mysqli_query($connect, 'SELECT AVG(value) AS average FROM rate1');
$result = array();
if ($response) {
/* fetch associative array */
while ($row = mysqli_fetch_assoc($response)) {
$result[] = $row;
}
/* free result set */
mysqli_free_result($result);
}
echo json_encode($result);
?>
вы можете сказать, когда вы сможете увидеть (зарегистрировать) правильные данные? Это ответ нормально? JSONObject? Любые сообщения об ошибках? – Jeff
** 1. ** Работает ли php? ** 2. ** Работало ли URLConnection? ** 3. ** Работает синтаксический анализ. Есть ли исключения? – AxelH
Как ... вы восстанавливаете 'значение' из Config, но в SQL он называется' average'. Но я не уверен, что массив будет называться 'result'. И вы можете вернуть простой объект Json вместо массива, так как 'AVG()' будет возвращать только одну строку – AxelH