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

Android / MySQL:Spinner不填充MySQL中的数据

Android / MySQL:Spinner不填充MySQL中的数据

PHP
ibeautiful 2022-08-05 15:36:25
我的代码有问题。我已经创建了一个从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”}]}但是当我打开应用程序时,微调器不会显示数据。我不知道为什么。以下是我的代码爪哇岛公共类 MainActivity 扩展 AppCompatActivity 实现 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_main);        //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(){        StringRequest stringRequest = new StringRequest(Config.DATA_URL,                new Response.Listener<String>() {                    @Override                    public void onResponse(String response) {                        JSONObject j = null;                        try {                            j = new JSONObject(response);                            result = j.getJSONArray(Config.JSON_ARRAY);                            getStudents(result);                        } catch (JSONException e) {                            e.printStackTrace();                        }                    }
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

我在我的安卓工作室里执行了你的代码。我看起来您的网络调用无法获取数据(结果保持为空)。检查我的代码以供参考。我用静态数据替换了您的网络呼叫。


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-08-05
  • 1 回答
  • 0 关注
  • 76 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信