我正在使用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. 從PHP MySql填充Android微調框
- 2. 填充微調框
- 3. Android動態填充微調框
- 4. 在android中填充微調器
- 5. 減少微調內的填充android
- 6. 在Android中動態填充微調器?
- 7. android:根據另一個微調選項填充微調框
- 8. 麻煩從ArrayList填充微調器
- 9. 從列表中填充微調器
- 10. 填充一個微調從另一個微調視病情
- 11. Android:以編程方式從Java代碼填充微調器
- 12. 從數據庫Android填充微調器需要舊條目
- 13. 從android中的光標填充微調器
- 14. 從編輯文本動態在Android中填充微調器
- 15. 從SQLite數據庫填充微調器Android
- 16. 查詢微調
- 17. 根據另一個微調器的選擇填充微調器
- 18. 基於另一個微調器填充微調器
- 19. 填充城市微調狀態微調已被選定後
- 20. Java中的微調零填充
- 21. 用sqlite數據填充微調器
- 22. 手動填充微調框in.java文件
- 23. 填充微調,使結果唯一
- 24. 淨MonoDroid的微調自動填充
- 25. 使用ArrayAdapter填充微調器
- 26. grails填充g:從查詢中選擇
- 27. 從匿名Linq查詢填充WinForms DataGridView
- 28. OracleDataAdapter未從查詢填充DataTable
- 29. Ajax從MySQL查詢填充表格
- 30. 如何從此Linq查詢填充SelectList?