Я пытаюсь создать приложение android, которое извлекает данные из базы данных MySQL в android, используя php. После получения я хочу отобразить результат в виде списка. проблема, с которой я сталкиваюсь, заключается в том, что только первая строка из столбца «Бренд» при получении.
- MySQL стол
Код:
Java
package com.example.trydatabase;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.StrictMode;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpRetryException;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
ListView listView;
ArrayAdapter<String> adapter;
String address = "http://192.168.53.2/camera.php";
BufferedInputStream is = null;
String line = null;
String result = null;
String[] data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listview_x);
//ALLOW NETWORK IN MAIN THREAD
StrictMode.setThreadPolicy((new StrictMode.ThreadPolicy.Builder().permitNetwork().build()));
//Retrieve
getData();
//ADAPTER
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
listView.setAdapter(adapter);
}
private void getData() {
try {
URL url = new URL(address);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
is = new BufferedInputStream(con.getInputStream());
} catch (Exception e) {
e.printStackTrace();
}
//READ CONTENT IS INTO STRING
try {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
//PARSE JSON DATA
try {
JSONArray ja = new JSONArray(result);
JSONObject jo = null;
data = new String[ja.length()];
for (int i = 0; i < ja.length(); i++) {
jo = ja.getJSONObject(i);
data[i] = jo.getString("Type");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Когда я запускаю код на эмуляторе, он дает мне только первую строку
- Мой вопрос: почему он не выбирает все строки? и как я могу это сделать?