【问题标题】:How do I populate a spinner instead of a textview? not sure where to start如何填充微调器而不是文本视图?不知道从哪里开始
【发布时间】:2020-11-20 04:13:59
【问题描述】:

我能够将 JSON 数组解析为文本视图,但想要填充微调器。目前我正在使用以下代码将 JSON 解析为文本视图。理想情况下,我希望有一个微调器,它按“名称”列出结果,并根据所选项目将“体积”、“全重”和“空重”放入单独的文本视图中。这是我第一次尝试在应用中包含微调器,但我不知道从哪里开始。

public void getJSON(){
    String url = "https://example.com/DBReadJSON.php";
    JsonRequest request = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        JSONArray jsonArray = response.getJSONArray("bottles");
                        for (int i = 0; i < jsonArray.length(); i++) {
                            JSONObject bottles = jsonArray.getJSONObject(i);
                            String Name = bottles.getString("name");
                            int vol = bottles.getInt("volume");
                            int full = bottles.getInt("fullweight");
                            int empty = bottles.getInt("emptyweight");
                            mTextViewResult.append(Name + ", " + vol + ", " + full +", " + empty + "\n");
                            Toast.makeText(getApplicationContext(),Name, Toast.LENGTH_SHORT).show();

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            error.printStackTrace();
        }
    });
    mQueue.add(request);
}

我意识到这可能是一个愚蠢的问题,我已经完全错误地解析了 JSON。对于那个很抱歉。我什至会很感激有人指出如何做到这一点的教程的方向。

谢谢。

【问题讨论】:

    标签: java android json spinner


    【解决方案1】:

    代码取自https://www.tutorialspoint.com/android/android_spinner_control.htm

     class AndroidSpinnerExampleActivity extends Activity implements  OnItemSelectedListener{
    
       Spinner spinner;
       ArrayAdapter<String> dataAdapter;
    
       List<String> categories;
    
       public void update(String add){
          categories.add(add);
          
          dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
          
          dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
          spinner.setAdapter(dataAdapter);
       }
    
       @Override
       public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
          
          // Spinner element
          spinner = (Spinner) findViewById(R.id.spinner);
          
          // Spinner click listener
          spinner.setOnItemSelectedListener(this);
          
          // Spinner Drop down elements
          categories = new ArrayList<String>();
          categories.add("Automobile");
          categories.add("Business Services");
          categories.add("Computers");
          categories.add("Education");
          categories.add("Personal");
          categories.add("Travel");
          
          // Creating adapter for spinner
          dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
          
          // Drop down layout style - list view with radio button
          dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
          
          // attaching data adapter to spinner
          spinner.setAdapter(dataAdapter);
       }
       
       @Override
       public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
          // On selecting a spinner item
          String item = parent.getItemAtPosition(position).toString();
          
          // Showing selected spinner item
          Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
       }
       public void onNothingSelected(AdapterView<?> arg0) {
          // TODO Auto-generated method stub
       }
    }
    

    这或多或少是如何设置微调器并更新/添加内容。您所做的就是调用 update(add) 并使用您要添加到其中的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多