1。我的问题:如何获取我的JSON数据并将其解析为我可以在我的微调器中使用的数组。
以下是我的json数据:
[["Mike Test 1"],["Mike Test 2"],["hello world"],["TEST MIKE 4"],["TEST MIKE 6"],["aliens,crazy stuff"],["Alien"],["american flags,flags"]]
我的脚本调用一个获取数据的函数。我知道这是有效的,因为我已经烘烤了返回值。然后它应循环并将值分配给在微调器中使用的新数组。
以下是我的java:
Spinner areaspinner;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
JSONArray jsonArray;
try {
//SETTINGS AND METHOD THAT GETS THE DATA
String spinnerContentType = "styles";
String spinnerURL = "getStyles.php";
String spinner_data = DataCall.getJSON(spinnerURL,spinnerContentType);
//NEW JSONArray OBJECT
jsonArray = new JSONArray(spinner_data);
final String[] array_spinner = new String[jsonArray.length()];
int show_total = jsonArray.length();
//CHECK HOW MANY ITEMS ARE RETURNED
Toast.makeText(flash_tattoo.this, show_total + "test", Toast.LENGTH_LONG).show();
for (int i=0; i<jsonArray.length(); i++)
{
//LOOP AND ASSIGN TO ARRAY
String styleValue = jsonArray.getJSONArray(0).getString(i);
array_spinner[i] = styleValue;
}
ArrayAdapter<String> adapter =
new ArrayAdapter<String> (this,
android.R.layout.simple_spinner_item,array_spinner);
adapter.setDropDownViewResource(R.layout.spinner_layout);
areaspinner.setAdapter(adapter);
}catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这是我的微调器布局:
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:textColor="#e70909"
/>
答案 0 :(得分:2)
对我来说,areaspinner
似乎是null
。
要添加一个微调器,你可以在main.xml中使用这样的东西。
<Spinner android:id="@+id/mySpinner"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:prompt="@string/mySpinnerText" />
然后在onCreate()
Spinner sp = (Spinner) findViewById(R.id.mySpinner);
ArrayAdapter<String> adapter =
new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, array_spinner);
adapter.setDropDownViewResource(R.layout.spinner_layout);
sp.setAdapter(adapter);