gpt4 book ai didi

java - ANDROID - 如何在 android studio 中将数据库 mysql php 的值显示到 TextView 中

转载 作者:行者123 更新时间:2023-11-29 20:11:05 28 4
gpt4 key购买 nike

我一直在寻找一些引用资料来使用 JSON 将我的值数据库显示到 android 中,但我在找到它的关键字时遇到了麻烦,这是我要尝试的所有代码,请CMIIW,我已将我的代码和数据库放入hostinger中以方便使用here

php代码

dbconfig.php

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "data_kuesioner";

send_data.php

<?php
include 'dbconfig.php';
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM pertanyaan";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row[] = $result->fetch_assoc()) {

$json = json_encode($row);
}
} else {
echo "0 results";
}
echo $json;
$conn->close();
?>

安卓代码

MainActivity.java

package flix.yudi.okhttp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import java.io.IOException;
import java.util.concurrent.ExecutionException;

import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class MainActivity extends AppCompatActivity {
private EditText edtText;
private TextView outputText;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edtText = (EditText) findViewById(R.id.editText1);
outputText = (TextView) findViewById(R.id.textView1);
}

public void downloadUrl(View view) {

String url = "http://" + edtText.getText().toString();
OkHttpHandler handler = new OkHttpHandler();
String result = null;
try {
result = handler.execute(url).get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputText.append(result + "\n");
}
}

OkHttpHandler.java

package flix.yudi.okhttp;
import android.os.AsyncTask;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;


public class OkHttpHandler extends AsyncTask<String, Void, String> {

OkHttpClient client = new OkHttpClient();
@Override
protected String doInBackground(String... params) {
Request.Builder builder = new Request.Builder();
builder.url(params[0]);
Request request = builder.build();
try {
Response response = client.newCall(request).execute();
return response.body().string();
} catch (Exception e) {
}
return null;
}
}

但是当我运行程序时,应用程序显示下面的另一个界面

Pic

最佳答案

您的网址返回“text/html”,您可以尝试将此 header 放入 send_data.php 中以将返回更改为 json。

header('Content-Type: application/json; charset=utf-8');

关于java - ANDROID - 如何在 android studio 中将数据库 mysql php 的值显示到 TextView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40114334/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com