Android 如何从URL将Json数据放入微调器?

Android 如何从URL将Json数据放入微调器?,android,android-layout,android-studio,android-spinner,android-json,Android,Android Layout,Android Studio,Android Spinner,Android Json,我在文本框中获取json,我试图将这些数据放入spinner,但无法这样做。下面是我的主要活动课,我正在使用截击 public class Mainactivity extends Activity { private String urlJsonArry = "https://www.abc.json"; private static String TAG = MainActivity.class.getSimpleName(); pr

我在文本框中获取json,我试图将这些数据放入spinner,但无法这样做。下面是我的主要活动课,我正在使用截击

    public class Mainactivity  extends Activity {
        private String urlJsonArry = "https://www.abc.json";
        private static String TAG = MainActivity.class.getSimpleName();
        private Button btnMakeArrayRequest;

        // Progress dialog
        private ProgressDialog pDialog;

        private TextView txtResponse,txtResponse2,txtResponse3,txtResponse4;

        // temporary string to show the parsed response
        private String jsonResponse, jsonResponse2, jsonResponse3, jsonResponse4;
        Spinner spinner;
        ArrayAdapter<String> adapter;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.spinners);

            spinner= (Spinner) findViewById(R.id.spinner);




            btnMakeArrayRequest = (Button) findViewById(R.id.btnArrayRequest);
            txtResponse = (TextView) findViewById(R.id.txtResponse);
            txtResponse2 = (TextView) findViewById(R.id.txtResponse2);
            txtResponse3 = (TextView) findViewById(R.id.txtResponse3);
            //  txtResponse4 = (TextView) findViewById(R.id.txtResponse4);


            pDialog = new ProgressDialog(this);
            pDialog.setMessage("Please wait...");
            pDialog.setCancelable(false);

            btnMakeArrayRequest.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // making json array request
                    makeJsonArrayRequest();
                }
            });

        }



        private void makeJsonArrayRequest () {

        showpDialog();
        JsonObjectRequest req = new JsonObjectRequest(urlJsonArry,

                new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject response) {
                        Log.d(TAG, response.toString());

                        try {

                            JSONArray array = response.getJSONArray("results");
                            // Parsing json array response
                            // loop through each json object
                            jsonResponse = "";
                            for (int i = 0; i < array.length(); i++) {

                                JSONObject person = (JSONObject) array
                                        .get(i);

                                System.out.println(person.toString());

                                String syllabus = person.getString("grade");
                                String grade = person.getString("grade");
                                String subject = person.getString("subject");
                                jsonResponse += "Board: " + syllabus + "\n\n";
                                jsonResponse2 += "Class: " + grade + "\n\n";
                                jsonResponse3 += "Subject: " + subject + "\n\n";
                                // jsonResponse4 += "ID: " + id + "\n\n";

//Getting Compile time error here

 adapter= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,array);
                                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                                spinner.setAdapter(adapter);}



                            txtResponse.setText(jsonResponse);



                            txtResponse2.setText(jsonResponse2);
                            txtResponse3.setText(jsonResponse3);
                            //txtResponse4.setText(jsonResponse4);


                        } catch (JSONException e) {
                            e.printStackTrace();
                            Toast.makeText(getApplicationContext(),
                                    "Error: " + e.getMessage(),
                                    Toast.LENGTH_LONG).show();
                        }

                        hidepDialog();
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                VolleyLog.d(TAG, "Error: " + error.getMessage());
                Toast.makeText(getApplicationContext(),
                        error.getMessage(), Toast.LENGTH_SHORT).show();
                hidepDialog();
            }
             });
公共类Mainactivity扩展活动{
专用字符串urlJsonArry=”https://www.abc.json";
私有静态字符串标记=MainActivity.class.getSimpleName();
私人按钮btnMakeArrayRequest;
//进度对话框
私人对话;
私有文本视图txtResponse、txtResponse2、txtResponse3、txtResponse4;
//显示已解析响应的临时字符串
私有字符串jsonResponse、jsonResponse2、jsonResponse3、jsonResponse4;
纺纱机;
阵列适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.spinners);
微调器=(微调器)findViewById(R.id.spinner);
btnMakeArrayRequest=(按钮)findViewById(R.id.btnArrayRequest);
txtResponse=(TextView)findViewById(R.id.txtResponse);
txtResponse2=(TextView)findViewById(R.id.txtResponse2);
txtResponse3=(TextView)findViewById(R.id.txtResponse3);
//txtResponse4=(TextView)findViewById(R.id.txtResponse4);
pDialog=新建进度对话框(此对话框);
setMessage(“请稍候…”);
pDialog.setCancelable(假);
btnMakeArrayRequest.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
//发出json数组请求
makeJsonArrayRequest();
}
});
}
私有void makeJsonArrayRequest(){
showpDialog();
JsonObjectRequest req=新的JsonObjectRequest(urlJsonArry,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
Log.d(TAG,response.toString());
试一试{
JSONArray数组=response.getJSONArray(“结果”);
//解析json数组响应
//循环遍历每个json对象
jsonResponse=“”;
对于(int i=0;i
您需要使用活动上下文
不是活动上下文尝试如下

adapter= new ArrayAdapter<String>(Mainactivity.this, android.R.layout.simple_spinner_item, array);
adapter=newArrayAdapter(Mainactivity.this,android.R.layout.simple\u微调器\u项,数组);
编辑:

更改数组格式。例如,在微调器中,要显示主题,请执行以下操作

String[] mySubject = new String[array.length()];
for (int i = 0; i < array.length(); i++) {

                                JSONObject person = (JSONObject) array
                                        .get(i);

                                System.out.println(person.toString());

                                String syllabus = person.getString("grade");
                                String grade = person.getString("grade");
                                String subject = person.getString("subject");
                                jsonResponse += "Board: " + syllabus + "\n\n";
                                jsonResponse2 += "Class: " + grade + "\n\n";
                                jsonResponse3 += "Subject: " + subject + "\n\n";
                                // jsonResponse4 += "ID: " + id + "\n\n";

                                mySubject[i] = subject;

}


 adapter= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mySubject);
                                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                                spinner.setAdapter(adapter);
String[]mySubject=新字符串[array.length()];
对于(int i=0;iadapter= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,array);
adapter= new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item,array);