我正在使用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?