java - 如何填充微调器而不是文本视图?不知道从哪里开始
问题描述
我能够将 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。对于那个很抱歉。我将不胜感激,甚至可以指出有关如何执行此操作的教程的方向。
谢谢。
解决方案
代码取自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) 并使用您要添加的值。
推荐阅读
- asp.net-core - PayPal 交易搜索 API:PERMISSION_DENIED,请求的操作没有权限
- javascript - 带有复选框的Jquery版本更改问题
- python - itertools 组合 Python 的条件
- css - CSS 用于一列图像而不是 Grid Plus 中的两列
- python - Python中数字的三角形模式
- php - 为什么 Composer 安装突然失败?
- javascript - 为什么 concat 添加到不可变数组不起作用?
- python - SQLAlchemy 选择混合属性表达式作为列
- node.js - Discord.js-commando 从 id 获取用户名
- java - postgres:插入自定义类型的数组