在我的Android应用程序Iam有6个微调器,我需要根据类别明智地加载它们与mysql数据库中存在的数据。并且我使用json检索数据并发送回android但这里我没有得到如何将数据分配给微调器。请帮我解决这个问题。
public void getItems(int l)
{
//Toast.makeText(getApplicationContext(), ""+l, 5000).show();
AsyncHttpClient client = new AsyncHttpClient();
RequestParams autofill_params = new RequestParams();
autofill_params.put("sending_category_id_JSON",autofill_composeJSONfromSQLite(l));
//Toast.makeText(getApplicationContext(), "Sending JSON ==> "+autofill_params,5000).show();
client.post("http://www.XXXX.com/mobile_cycle/spares_auto_fill.php", autofill_params, new AsyncHttpResponseHandler()
{
@Override
public void onSuccess(String response)
{
//Toast.makeText(getApplicationContext(), "Responce is ==>"+response, 5000).show();
//spinner_updater();
Gson gson = new GsonBuilder().create();
try
{
JSONArray arr = new JSONArray(response);
//Toast.makeText(getApplicationContext(), "Length ==> "+arr.length(), 5000).show();
//public String temp_array[];
final String[] temp_array = new String[5];
for (int i = 0; i < arr.length(); i++)
{
JSONObject obj = (JSONObject) arr.get(i);
//auto_first_name = obj.get("name").toString();
//Toast.makeText(getApplicationContext(), "Length ==> "+arr.length(), 5000).show();
String item_name = obj.get("name").toString();
temp_array[i] = item_name;
//spinner_updater(item_name);
}
spinner_updater(temp_array);
}
catch (JSONException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
//fillData(autofill_network_flag);
}
@Override
public void onFailure(int statusCode, Throwable error,String content)
{
if (statusCode == 404)
{
Toast.makeText(getApplicationContext(), "Requested resource not found", Toast.LENGTH_LONG).show();
}
else if (statusCode == 500)
{
Toast.makeText(getApplicationContext(), "Something went wrong at server end", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "Unexpected Error occcured! [Most common Error: Device might not be connected to Internet]",
Toast.LENGTH_LONG).show();
}
}
});
}
public void spinner_updater(String[] item_name)
{
Toast.makeText(getApplicationContext(), "Inside Updater Item Length ==> "+item_name.length, 5000).show();
for(int length = 0; length < item_name.length; length++)
{
String empty_temp = " ";
String temp_item = item_name[length];
if(temp_item.equals(empty_temp))
{
//Toast.makeText(getApplicationContext(), "Item ==> "+item_name[length], 5000).show();
}
else
{
Toast.makeText(getApplicationContext(), "Item ==> "+item_name[length], 5000).show();
}
}
ArrayAdapter<String> adp2 = new ArrayAdapter<String>
(this, android.R.layout.simple_dropdown_item_1line, str1);
sp2.setAdapter(adp2);
}
答案 0 :(得分:0)
首先创建与spinner一样多的列表
List<String> list1, list2, list;
list1 = new ArrayList<String>();
list2 = new ArrayList<String>();
list3 = new ArrayList<String>();
spinner1 = (Spinner) findViewById(R.id.spinner1 );
spinner2 = (Spinner) findViewById(R.id.spinner2 );
spinner3 = (Spinner) findViewById(R.id.spinner3 );
现在将数据添加到数据库或json
中的每个列表 SQLiteDatabase db = dbh.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from frnds", null);
adding first row items in first list
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor
.moveToNext()) {
// do what you need with the cursor here
list1.add(cursor.getString(1));
}
在第二个列表中添加第二行项目
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor
.moveToNext()) {
// do what you need with the cursor here
list2.add(cursor.getString(2));
}
在第三个列表中添加第三行项
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor
.moveToNext()) {
// do what you need with the cursor here
list3.add(cursor.getString(3));
}
cursor.close();
将列表设置为微调器
ArrayAdapter<String> spinner1Adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item,
list1);
spinner1Adapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner1.setAdapter(spinner1Adapter);
ArrayAdapter<String> spinner2Adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item,
list2);
spinner2Adapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(spinner2Adapter);
ArrayAdapter<String> spinner3Adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item,
list3);
spinner3Adapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner3.setAdapter(spinner3Adapter);