我正在使用CustomHttpClient連接並從我的Android應用程序執行查詢。我想知道是否可以從一個PHP/MySQL查詢填充微調,如果是的話將如何做?Android從PHP/MySQL查詢填充微調
回答
所以這實際上應該相當容易。在實現細節方面,你並沒有真正給我們太多的工作,所以我會盡我所能對你進行半僞代碼編寫,並給你一個很好的一般答案。
我們希望從單獨的線程執行查詢,以便在等待網絡響應時不會阻塞UI線程。您可以通過多種不同的方式來執行此操作,包括使用AsyncTask,IntentService或某種Loader。我想在你的情況下,從AsyncTaskLoader類派生的自定義類將是最好的。因此,讓我們看看這將如何看(注意,如果你正在編寫這個應用程序的任何小於api級別11的任何東西,你需要訪問一些較新的apis來使用加載器,結賬http://developer.android.com/resources/articles/backward-compatibility.html)。
MyActivity extends Activity implements LoaderManager.LoaderCallbacks<List<SpinnerItem>>{
private Adapter<SpinnerItem> spinnerAdapter;
private static final int SPINNER_LOADER_ID = 0;
public void onCreate(Bundle icicle){
Spinner theSpinner = findViewById(R.id.the_spinner);
spinnerAdapater = new Adapter<SpinnerItem>(...); //create empty adapter
spinnerAdapater.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
theSpinner.setAdapter(spinnerAdapater);
getLoaderManager().initLoader(SPINNER_LOADER_ID, null, this);
}
public Loader<List<SpinnerItems>> onCreateLoader(int id, Bundle arg){
//Create and return your loader
}
public void onLoadFinish(Loader<List<SpinnerItem>> loader, List<SpinnerItem> data){
//update your adapater with the new data
}
public void onLoaderReset(Loader<List<SpinnerItem>> loader){
//clear out all the data in the adapter
}
}
這是所有非常直截了當的東西。您應該可以通過閱讀Android開發者頁面上的加載器,適配器等來填補空白。我們使用完整的「SpinnerItem」的「List」的事實當然取決於您的特定實現,您選擇使用的適配器的類型也是如此。隨意選擇你想要的任何實際的數據結構。有關詳細信息,請再次查閱Android開發者頁面。至於裝載機類的話,你會想要做這樣的事情:
MyNetworkLoader extends AsyncTaskLoader<List<SpinnerItem>>
public MyNetworkLoader(Context context){
super(context);
}
List<SpinnerItem> loadInBackground(){
//Get data from server
}
}
在loadInBackground方法,你會用你的CustomHttpClient查詢您的服務器,並轉換成響應某種數據結構(只和以前一樣,在這個例子中我們使用了「SpinnerItem」的「List」)。
作爲最後的注意事項,在您的網絡請求完成之前,您的微調器將變空。您可能想要包含某種邏輯,通知用戶正在加載微調器的內容。
就是這樣。新的加載程序api使事情變得非常簡單。
是的,這是可能的。使用php/mysql查詢檢索項目列表,然後使用適配器將這些項目提供給微調器。這個問題提供了一個如何寫SpinnerAdapter的例子:How to correctly overwrite methods of SpinnerAdapter
- 1. 用db查詢填充微調器
- 2. android:從strings.xml填充微調器
- 3. 從PHP MySql填充Android微調框
- 4. Android從另一個微調器填充微調內容
- 5. 填充微調框
- 6. Android有2個ArrayList填充微調器
- 7. Android動態填充微調框
- 8. 在Android中動態填充微調器?
- 9. 在android中填充微調器
- 10. 減少微調內的填充android
- 11. 從獨立微調框填充從屬微調框
- 12. android:根據另一個微調選項填充微調框
- 13. 從數據庫填充微調器
- 14. 從列表中填充微調器
- 15. 麻煩從ArrayList填充微調器
- 16. 如何從陣列串填充微調[]
- 17. 如何填充微調框
- 18. 用JSON填充微調器
- 19. 填充一個微調從另一個微調視病情
- 20. 從android中的web服務數據填充微調器
- 21. Android:以編程方式從Java代碼填充微調器
- 22. 從數據庫Android填充微調器需要舊條目
- 23. 從SQLite填充一個Android微調器,但有兩個字段?
- 24. 從android中的光標填充微調器
- 25. 從SQLite數據庫填充微調器Android
- 26. 從編輯文本動態在Android中填充微調器
- 27. 如何從數據庫Android中填充微調器?
- 28. Android:如何從保存的openFileOutput Mode_PRIVATE填充微調器?
- 29. 如何從SQLite數據庫表填充Android微調錶
- 30. 如何從PHP頁面填充微調器Android?