2015-10-31 75 views

回答

7

你必须首先创建一个PHP脚本,将打印你的MySQL数据库的数据以JSON格式..在这里,我向您展示一个例子让我们看看这是我的数据库 MySQL Database

现在假设我需要加载这个表的所有用户名到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)); 
} 
} 

来源Android Spinner Example with MySQL Database

0
  1. Read the Spinner class documentation
  2. 查询数据库
  3. 获取结果
  4. 编码数据转换成JSON格式
  5. 请求,并在您的应用程序解析结果
  6. 填充一个列表阵列微调器
  7. 将适配器设置在微调器上
相关问题