我一直在尝试进入android / java编程,我一直在理解如何正确获取此json的值并将其解析为在微调器中选择的选项。
我的json就像:
["Result1","Result2","Result3"]
我目前的代码如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RequestQueue queue = Volley.newRequestQueue(this);
String url = "https://example.com/jsonfile.json";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//Do something with response
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
System.out.println(error.toString());
}
});
queue.add(stringRequest);
}
将这些值(Result1,Result2,Result3等)放入spinner.entries的最简单方法是什么?
提前致谢
答案 0 :(得分:1)
据我所知,您以错误的方式发送json数据。 如果你想发送一个数组,你必须放置一个jsonArray对象作为响应名称来访问该jsonArray。
示例强>
&#34;汽车&#34;:[&#34;福特&#34;,&#34;宝马&#34;,&#34;菲亚特&#34; ]
在这里,我们将在JsonArray中发送名称为&#34; cars&#34;的3个车名。
访问这些条目: -
for (i in myObj.cars) {
carsArray += myObj.cars[i];
}
答案 1 :(得分:1)
试试这个:
myString.replace("\"]","");
myString.replace("[\"","");
List<String> myList = new ArrayList<String>(Arrays.asList(s.split("\",\"")));
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(varRoot, android.R.layout.simple_spinner_item, myList);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // The drop down vieww
mySpinner.setAdapter(spinnerArrayAdapter);
答案 2 :(得分:0)
您需要进行同步调用才能获取json数据。请参阅以下教程 Android assync task example 并使用Android json parsing example
解析json数据答案 3 :(得分:0)
@Override
public void onResponse(String response) {
//Do something with response
JSONArray jsonArray = new JSONArray(response);
for (int i = 0; i < array.length(); i++) {
array.put(jsonArray.getString(i));
}
}
在您的活动的OnCreate()元数据
上添加此内容ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(this, array,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
并把它
ArrayList<String> array = new ArrayList<String>();
答案 4 :(得分:0)
你好试试这个可能会有帮助吗
public class MainActivity extends AppCompatActivity {
Button btnCall;
final List<String> reviewList = new ArrayList<>();
List<String>resultList=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnCall=(Button)findViewById(R.id.btnCall);
final String jArrStr="[\"Result1\",\"Result2\",\"Result3\"]";
btnCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
JSONArray jArry=new JSONArray(jArrStr);
for (int i = 0; i < jArry.length(); i++) {
String strArr=jArry.getString(0);
resultList.add(jArry.getString(i));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
}