我有我的学校项目,我需要从MySQL数据库中提取值并将其显示给Android中的Spinner。 我正在使用Android Studio和Volley Library进行网络操作,但困惑如何实现这件事。 我会感谢您的帮助。谢谢:)如何从MySQL数据库获取数据并将其加载到微调器?
1
A
回答
7
你必须首先创建一个PHP脚本,将打印你的MySQL数据库的数据以JSON格式..在这里,我向您展示一个例子让我们看看这是我的数据库
现在假设我需要加载这个表的所有用户名到android的微调。因此,这是PHP脚本,这将使我JSON格式的数据
<?php
$sql = "SELECT * FROM students";
require_once('dbConnect.php');
$r = mysqli_query($con,$sql);
$result = array();
while($row = mysqli_fetch_array($r)){
array_push($result,array(
'username'=>$row['username'],
'name'=>$row['name'],
'course'=>$row['course'],
'session'=>$row['session']
));
}
echo json_encode(array('result'=>$result));
mysqli_close($con);
上面的PHP代码将提供以下JSON
{"result":[{"username":"faiz","name":"Faiz Khan","course":"BCA","session":"2014-2017"},{"username":"belal","name":"Belal Khan","course":"MCA","session":"2015-2018"},{"username":"ramiz","name":"Ramiz Khan","course":"MBA","session":"2015-2017"},{"username":"zafar","name":"Zafar Khan","course":"MBA","session":"2014-2016"}]}
现在Android的代码将MainActivity.java
public class MainActivity extends AppCompatActivity{
private Spinner spinner;
private ArrayList<String> students;
private JSONArray result;
private TextView textViewName;
private TextView textViewCourse;
private TextView textViewSession;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
students = new ArrayList<String>();
spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
textViewName = (TextView) findViewById(R.id.textViewName);
textViewCourse = (TextView) findViewById(R.id.textViewCourse);
textViewSession = (TextView) findViewById(R.id.textViewSession);
getData();
}
private void getData(){
StringRequest stringRequest = new StringRequest("your php script address",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
JSONObject j = null;
try {
j = new JSONObject(response);
result = j.getJSONArray(Config.JSON_ARRAY);
getStudents(result);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void getStudents(JSONArray j){
for(int i=0;i<j.length();i++){
try {
JSONObject json = j.getJSONObject(i);
students.add(json.getString(Config.TAG_USERNAME));
} catch (JSONException e) {
e.printStackTrace();
}
}
spinner.setAdapter(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, students));
}
}
0
- Read the Spinner class documentation
- 查询数据库
- 获取结果
- 编码数据转换成JSON格式
- 请求,并在您的应用程序解析结果
- 填充一个列表阵列微调器
- 将适配器设置在微调器上
相关问题
- 1. 从数据库中获取数据并将其放入微调框中
- 2. 如何从MySQL数据库获取数据并将其插入到文本中
- 3. 如何从MySql数据库检索微调器数据的值
- 4. 如何从数据库获取记录并将其加载到标签?
- 5. 如何将数据从MySql加载到MS SQL Server数据库?
- 6. 如何从数据库Mysql中选择数据并将其添加到DataGridView上?
- 7. 加载微调对话框从Android数据库中获取数据
- 8. 如何获取API数据并使用PHP将其添加到数据库中?
- 9. 从mysql中获取数据并将其回显到数组中
- 10. 从传感器获取数据并将其上传到数据库
- 11. 如何根据其他微调器获取微调器值
- 12. 试图从数据库中获取数据,并将其加载到数据表中有异常
- 13. 如何从DB2数据库获取值并将其分配给Oracle数据库?
- 14. 从数据库中获取数据并将其放入SELECT TAG
- 15. 从数据库中获取数据并将其设置为edittext
- 16. 从数据库获取数据并将其组织2 2 2
- 17. 如何检测按钮并将其添加到mySQL数据库?
- 18. 如何从MySQL获取数据并将其存储在sqlite中
- 19. 如何从数据库中获取布尔值并将其添加到TextView?
- 20. 从XML文件中获取数据并将其放入MySQL数据库
- 21. 从shell界面将数据加载到mysql数据库中
- 22. 将数据从MySQL数据库加载到Objective C/XCode项目
- 23. 将数据从CSV加载到mySQL数据库Java + hibernate + spring
- 24. 将数据从MySQL数据库加载到C#DGV
- 25. 我如何从mysql数据库获取数据到flash?
- 26. 如何从mysql数据库获取数据到JSP页面?
- 27. 如何从MySQL数据库中获取数据到ckeditor?
- 28. 如何从一个数据库获取数据到其他数据库?
- 29. 如何获取用户ID并将其存储到数据库
- 30. 将数组从数据库显示到微调器中