2016-10-18 1 views
0

Ich habe einige Verweise gesucht, um meine Wert-Datenbank in Android mit JSON anzuzeigen, aber ich habe ein Problem mit dem Schlüsselwort zu finden, hier ist alle meine Code, um zu versuchen, bitte CMIIW, ich habe meinen Code und DB in hostinger setzen, um es hereANDROID - Wie man den Wert der Datenbank mysql PHP in Textview in Android Studio

pHP-Code

dbconfig.php

leicht zu machen

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

android Code

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

, aber wenn ich das Programm ausführen, die App eine andere Schnittstelle unter

Pic

+0

Ihre URL gibt HTML zurück, nicht json. und Ihr Skript gibt auch non-json aus, wenn die Abfrage keine Daten findet. –

+0

Ich habe einen Code gefunden, um json [hier] (http://square.github.io/okhttp/) zu bekommen, aber ich weiß nicht, wo ich den Code "public static final setzen sollte MediaType JSON = MediaType.parse (" application/json; charset = utf-8 ");", hast du einen einfachen Code, um json sir zu bekommen? – Flix

Antwort

0

Ihre url zurückkehrt "text/html" angezeigt werden können Sie versuchen, Setzen Sie diesen Header in Ihre send_data.php, um die Rückkehr zu json zu ändern.

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