Извлечение данных из mysql в просмотр списка показывает только первый элемент из таблицы - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь создать приложение android, которое извлекает данные из базы данных MySQL в android, используя php. После получения я хочу отобразить результат в виде списка. проблема, с которой я сталкиваюсь, заключается в том, что только первая строка из столбца «Бренд» при получении.

- MySQL стол

mysql table called camera

Код:

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();
        }


    }



}

Когда я запускаю код на эмуляторе, он дает мне только первую строку

enter image description here

  • Мой вопрос: почему он не выбирает все строки? и как я могу это сделать?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...