Php 是否有任何方法可以在不使用ListView的情况下逐个显示textviews i中的数据库记录

Php 是否有任何方法可以在不使用ListView的情况下逐个显示textviews i中的数据库记录,php,android,mysql,textview,Php,Android,Mysql,Textview,我想将sql查询返回的特定数据打印到android应用程序中。这里我想使用limit query返回两条记录。 这意味着,每当我在select查询上设置一些条件时,该类型的记录将通过textview显示。 任何人都可以帮助我查看通过限制查询返回的数据,而不使用ListView逐个查看TextView 这是我的密码 MainActivity.java package com.example.readtoapp; import androidx.appcompat.app.AppCompatAc

我想将sql查询返回的特定数据打印到android应用程序中。这里我想使用limit query返回两条记录。 这意味着,每当我在select查询上设置一些条件时,该类型的记录将通过textview显示。 任何人都可以帮助我查看通过限制查询返回的数据,而不使用ListView逐个查看TextView

这是我的密码

MainActivity.java

package com.example.readtoapp;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (ListView) findViewById(R.id.listView);
        getJSON("http://192.168.1.15:8080/api/getdata.php");
    }


    @SuppressLint("NewApi")
    private void getJSON(final String urlWebService) {

        @SuppressLint("NewApi")
        class GetJSON extends AsyncTask<Void, Void, String> {

            @Override
            protected void onPreExecute() {
                super.onPreExecute();
            }


            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).show();
                try {
                    loadIntoListView(s);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }

            @Override
            protected String doInBackground(Void... voids) {
                try {
                    URL url = new URL(urlWebService);
                    HttpURLConnection con = (HttpURLConnection) url.openConnection();
                    StringBuilder sb = new StringBuilder();
                    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
                    String json;
                    while ((json = bufferedReader.readLine()) != null) {
                        sb.append(json + "\n");
                    }
                    return sb.toString().trim();
                } catch (Exception e) {
                    return null;
                }
            }
        }
        GetJSON getJSON = new GetJSON();
        getJSON.execute();
    }

    private void loadIntoListView(String json) throws JSONException {
        JSONArray jsonArray = new JSONArray(json);
        String[] heroes = new String[jsonArray.length()];
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject obj = jsonArray.getJSONObject(i);
            heroes[i] = obj.getString("name");
        }
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, heroes);
        listView.setAdapter(arrayAdapter);
    }
}`
MainActivity.java
包com.example.readtoapp;
导入androidx.appcompat.app.appcompat活动;
导入android.annotation.SuppressLint;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.io.BufferedReader;
导入java.io.InputStreamReader;
导入java.net.HttpURLConnection;
导入java.net.URL;
导入android.os.Bundle;
公共类MainActivity扩展了AppCompatActivity{
列表视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView=(listView)findViewById(R.id.listView);
getJSON(“http://192.168.1.15:8080/api/getdata.php");
}
@SuppressLint(“新API”)
私有void getJSON(最终字符串urlWebService){
@SuppressLint(“新API”)
类GetJSON扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
}
@凌驾
受保护的void onPostExecute(字符串s){
super.onPostExecute(s);
Toast.makeText(getApplicationContext(),s,Toast.LENGTH_SHORT).show();
试一试{
装入列表视图;
}捕获(JSONException e){
e、 printStackTrace();
}
}
@凌驾
受保护的字符串背景(无效…无效){
试一试{
URL=新URL(urlWebService);
HttpURLConnection con=(HttpURLConnection)url.openConnection();
StringBuilder sb=新的StringBuilder();
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(con.getInputStream());
字符串json;
而((json=bufferedReader.readLine())!=null){
sb.append(json+“\n”);
}
使某人恢复原状;
}捕获(例外e){
返回null;
}
}
}
GetJSON GetJSON=new GetJSON();
getJSON.execute();
}
私有void loadIntoListView(字符串json)抛出JSONException{
JSONArray JSONArray=新JSONArray(json);
String[]heroes=新字符串[jsonArray.length()];
for(int i=0;i
下面是php文件

<?php
$servername = "localhost";
$username = "root";
$password = "";
$database = "android";

$conn = new mysqli($servername, $username, $password, $database);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$heroes = array(); 
$sql = "SELECT id, name FROM heroes limit 1;";
$stmt = $conn->prepare($sql);
$stmt->execute();
$stmt->bind_result($id, $name);
while($stmt->fetch()){ 
    $temp = [
        'id'=>$id,
        'name'=>$name
    ]; 
    array_push($heroes, $temp);
}
echo json_encode($heroes);
?>

在activity\u main.xml中替换ListView以使用TextView并将id更改为nameTv

并更新此代码:

TextView nameTv;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    nameTv = (TextView) findViewById(R.id.nameTv);
    getJSON("http://192.168.1.15:8080/api/getdata.php");
}

private void loadIntoListView(String json) throws JSONException {
    JSONArray jsonArray = new JSONArray(json);
    String[] heroes = new String[jsonArray.length()];
    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject obj = jsonArray.getJSONObject(i);
        heroes[i] = obj.getString("name");
    }
    nameTv.setText(heroes[0]);
}
TextView-nameTv;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
nameTv=(TextView)findviewbyd(R.id.nameTv);
getJSON(“http://192.168.1.15:8080/api/getdata.php");
}
私有void loadIntoListView(字符串json)抛出JSONException{
JSONArray JSONArray=新JSONArray(json);
String[]heroes=新字符串[jsonArray.length()];
for(int i=0;i