Php 如何在android中从Mysql动态获取数据到spinner

Php 如何在android中从Mysql动态获取数据到spinner,php,android,mysql,Php,Android,Mysql,我需要从mysql表获取数据到我的android应用程序微调器,当我在AVD上运行它并开始抓取过程时,应用程序突然停止并自动关闭,并显示消息“不幸的是,项目已停止工作”,我已从网站下载此代码,并希望删除创建类别代码,只需要将数据从数据库抓取到微调器的代码。我是android开发的新手,请让我离开这里,提前谢谢 public class MainActivity extends Activity implements OnItemSelectedListener { private T

我需要从mysql表获取数据到我的android应用程序微调器,当我在AVD上运行它并开始抓取过程时,应用程序突然停止并自动关闭,并显示消息“不幸的是,项目已停止工作”,我已从网站下载此代码,并希望删除创建类别代码,只需要将数据从数据库抓取到微调器的代码。我是android开发的新手,请让我离开这里,提前谢谢

public class MainActivity extends Activity implements OnItemSelectedListener {


    private TextView txtCategory;
    private Spinner spinnerFood;
    // array list for spinner adapter
    private ArrayList<Category> categoriesList;
    ProgressDialog pDialog;

    // API urls

    // Url to get all categories
    private String URL_CATEGORIES = "http://10.0.2.2:8383/mysqlData/get_all_programs.php";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        spinnerFood = (Spinner) findViewById(R.id.spinFood);


        categoriesList = new ArrayList<Category>();

        // spinner item select listener
        spinnerFood.setOnItemSelectedListener(this);



        //new GetCategories().execute();
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                // fetching all categories
                new GetCategories().execute();
            }
        });
    }
private void populateSpinner() {
        List<String> lables = new ArrayList<String>();

        txtCategory.setText("");

        for (int i = 0; i < categoriesList.size(); i++) {
            lables.add(categoriesList.get(i).getName());
        }

        // Creating adapter for spinner
        ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, lables);

        // Drop down layout style - list view with radio button
        spinnerAdapter
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        // attaching data adapter to spinner
        spinnerFood.setAdapter(spinnerAdapter);
    }
private class GetCategories extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(MainActivity.this);
            pDialog.setMessage("Fetching food categories..");
            pDialog.setCancelable(false);
            pDialog.show();

        }

        @Override

        protected Void doInBackground(Void... arg0) {
            ServiceHandler jsonParser = new ServiceHandler();
            String json = jsonParser.makeServiceCall(URL_CATEGORIES, ServiceHandler.GET);

            Log.e("Response: ", "> " + json);

            if (json != null) {
                try {
                    JSONObject jsonObj = new JSONObject(json);
                    if (jsonObj != null) {
                        JSONArray categories = jsonObj
                                .getJSONArray("categories");                        

                        for (int i = 0; i < categories.length(); i++) {
                            JSONObject catObj = (JSONObject) categories.get(i);
                            Category cat = new Category(catObj.getInt("id"),
                                    catObj.getString("name"));
                            categoriesList.add(cat);
                        }
                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                }

            } else {
                Log.e("JSON Data", "Didn't receive any data from server!");
            }

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            if (pDialog.isShowing())
                pDialog.dismiss();
            populateSpinner();
        }

    }
public void onItemSelected(AdapterView<?> parent, View view, int position,
            long id) {
        Toast.makeText(
                getApplicationContext(),
                        parent.getItemAtPosition(position).toString() + " Selected" ,
                Toast.LENGTH_LONG).show();

    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {        

    }
}

请输入您的logcat如何获取logcat。我是android新手,请告诉我发布的方式