2016-10-18 22 views
0

JSONを使用して値データベースをアンドロイドに表示するための参照がいくつかありますが、キーワードを見つけるには問題があります。 ここにありますすべての私のコードは、試してみる は、私が作るためにhostingerに私のコードとDBを入れているCMIIWしてください、それは簡単here- データベースmysql phpの値をアンドロイドスタジオのtextviewに表示する方法

PHPコード

dbconfig.php

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

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

アンドロイドコードsend_data.php

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

+0

あなたのURLはjsonではなくhtmlを返しています。クエリでデータが見つからない場合、スクリプトはnon-jsonも出力します。 –

+0

json [here](http://square.github.io/okhttp/)を取得するためのコードが見つかりましたが、コードを置く場所がわかりません "public static final MediaType JSON = MediaType.parse(" application/json; charset = utf-8 ");"、 jsonさんに連絡する簡単なコードがありますか? – Flix

答えて

0

あなたのURLが返されて、下記の別のインターフェイスを表示する "text/htmlの" あなたが試すことsend_data.phpにこのヘッダーを入れてjsonへの戻り値を変更します。

header('Content-Type: application/json; charset=utf-8'); 
関連する問題