为了账号安全,请及时绑定邮箱和手机立即绑定

Android / MySQL:微调器不填充来自 MySQL 的数据

Android / MySQL:微调器不填充来自 MySQL 的数据

PHP
哆啦的时光机 2022-07-22 16:59:31
我的代码有问题。我已经创建了一个从 MySQL 数据库填充的微调器。PHP 代码似乎完全没有问题,因为我运行链接“localhost/latihan1/menu/php”,将显示 json 字符串。json显示如下:{"result":[{"username":"haha","name":"Bus Bisnis","course":"math","session":"20119"},{"username":"hihi", "name":"Bus Ace","course":"fizik","session":"12817"},{"username":"m_ridwan","name":"Ridwan","course":"Komputer" ,"session":"1920"},{"username":"m_iqbal","name":"Iqbal","course":"Sains","session":"2021"}]}但是当我打开应用程序时,微调器不显示数据。我不知道为什么。下面是我的代码JAVA公共类 MainActivity 扩展 AppCompatActivity 实现 Spinner.OnItemSelectedListener{<?php     require_once "koneksi.php";    $query = mysqli_query($con, "SELECT * FROM kendaraan ORDER BY id ASC");    $students = array();        while($row = mysqli_fetch_array($query)){        array_push($students,array(            'username'=>$row['username'],            'name'=>$row['name'],            'course'=>$row['course'],            'session'=>$row['session']        ));    }    echo json_encode(array('result'=>$students));    mysqli_close($con);?>
查看完整描述

1 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

我在我的 android studio 中执行了你的代码。我看起来您的网络调用无法获取数据(结果仍然为空)。检查我的代码以供参考。我用静态数据替换了您的网络调用。


package com.attiq.testapp;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Spinner;

import android.widget.TextView;


import androidx.appcompat.app.AppCompatActivity;


import com.google.gson.Gson;

import com.google.gson.JsonArray;

import com.google.gson.JsonObject;


import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;


import java.util.ArrayList;


public class Main5Activity extends AppCompatActivity implements Spinner.OnItemSelectedListener {

private Spinner spinner;

private ArrayList<String> students;


//JSON Array

private JSONArray result;


private TextView textViewName;

private TextView textViewCourse;

private TextView textViewSession;


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main5);


    //Initializing the ArrayList

    students = new ArrayList<String>();


    spinner = findViewById(R.id.spinner);

    spinner.setOnItemSelectedListener(this);


    textViewName = findViewById(R.id.textViewName);

    textViewCourse = findViewById(R.id.textViewCourse);

    textViewSession = findViewById(R.id.textViewSession);


    getData();

}


private void getData(){

    String json= "{\"result\":[{\"username\":\"haha\",\"name\":\"Bus Bisnis\",\"course\":\"math\",\"session\":\"20119\"},{\"username\":\"hihi\",\"name\":\"Bus Ace\",\"course\":\"fizik\",\"session\":\"12817\"},{\"username\":\"m_ridwan\",\"name\":\"Ridwan\",\"course\":\"Komputer\",\"session\":\"1920\"},{\"username\":\"m_iqbal\",\"name\":\"Iqbal\",\"course\":\"Sains\",\"session\":\"2021\"}]}";

    try {

        JSONObject jsonObject = new JSONObject(json);

        result= jsonObject.getJSONArray("result");

        getStudents(result);

    } catch (Exception e){

        e.printStackTrace();

    }

}


private void getStudents(JSONArray j) {

    for (int i = 0; i < j.length(); i++) {

        try {

            JSONObject json = j.getJSONObject(i);


            students.add(json.getString(Config.TAG_USERNAME));

        } catch (JSONException e) {

            e.printStackTrace();

        }

    }


    spinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, students));

}


private String getName(int position) {

    String name = "";

    try {


        JSONObject json = result.getJSONObject(position);


        name = json.getString(Config.TAG_NAME);

    } catch (JSONException e) {

        e.printStackTrace();

    }

    return name;

}


private String getCourse(int position) {

    String course = "";

    try {

        JSONObject json = result.getJSONObject(position);

        course = json.getString(Config.TAG_COURSE);

    } catch (JSONException e) {

        e.printStackTrace();

    }

    return course;

}


private String getSession(int position) {

    String session = "";

    try {

        JSONObject json = result.getJSONObject(position);

        session = json.getString(Config.TAG_SESSION);

    } catch (JSONException e) {

        e.printStackTrace();

    }

    return session;

}


@Override

public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

    //Setting the values to textviews for a selected item

    textViewName.setText(getName(position));

    textViewCourse.setText(getCourse(position));

    textViewSession.setText(getSession(position));

}


@Override

public void onNothingSelected(AdapterView<?> parent) {

    textViewName.setText("");

    textViewCourse.setText("");

    textViewSession.setText("");

}

}



查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号