如何使用微调器从givn 4-5选项中将所选选项插入数据库?

时间:2016-07-21 10:41:50

标签: android mysql

我正在开发一个应用程序,在某些页面上用户需要从给定的4-5选项中选择一个选项当前我正在使用微调器来实现此功能现在的问题是,如果用户选择第3或第4选项(仅选择单个选项)允许)选择如何在mysql php数据库中插入该特定选项。以下是我正在使用的代码..

//MainActivity.java

    public class MainActivity_D extends AppCompatActivity implements AdapterView.OnItemSelectedListener{

            //Declaring an Spinner
            private Spinner spinner2, spinner1;
            private String str_spinner1, str_spinner2, s_name, s_course;
            //An ArrayList for Spinner Items

            private ArrayList<String> students1;
            private ArrayList<String> students2;

            Button mBtnSave;

            //JSON Array

            private JSONArray result1, result2, result;

            //TextViews to display details
            private TextView textViewName1;
            private TextView textViewName2;
            private TextView textViewCourse;
            private TextView textViewSession;

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

                //Initializing the ArrayList
                students1 = new ArrayList<String>();
                students2 = new ArrayList<String>();

                //Initializing Spinner


                //Adding an Item Selected Listener to our Spinner
                //As we have implemented the class Spinner.OnItemSelectedListener to this class iteself we are passing this to setOnItemSelectedListener


                spinner1 = (Spinner) findViewById(R.id.spinner1);
                spinner2 = (Spinner) findViewById(R.id.spinner2);

                spinner1.setOnItemSelectedListener(this);
                spinner2.setOnItemSelectedListener(this);

                mBtnSave = (Button) findViewById(R.id.button2);

                mBtnSave.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {

                        submitForm();

                    }
                });

                //Initializing TextViews
                textViewName1 = (TextView) findViewById(R.id.textViewName1);
                textViewName2 = (TextView) findViewById(R.id.textViewName2);
                //      textViewCourse = (TextView) findViewById(R.id.textViewCourse);
                //      textViewSession = (TextView) findViewById(R.id.textViewSession);

                //This method will fetch the data from the URL
                getData1();
                getData2();

            }

            private void submitForm() {
                // Submit your form here. your form is valid
                //Toast.makeText(this, "Submitting form...", Toast.LENGTH_LONG).show();
            //    s_name = spinner1.getSelectedItem().toString();
            //    s_course = spinner2.getSelectedItem().toString();

                Toast.makeText(this, "Signing up...", Toast.LENGTH_SHORT).show();
                new InsertActivity(this).execute(s_name, s_course);


            }

            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {


                switch (parent.getId()){

                    case R.id.spinner1:
                        spinner1.setSelection(position);
                        s_name = (String) spinner1.getSelectedItem();
                        //    getData1();
                        // showToast("Spinner1: position=" + position);

                        break;


                    case R.id.spinner2:
                        spinner2.setSelection(position);
                        s_course = (String) spinner2.getSelectedItem();
                        //    getData2();
                        break;
                }

            /*if(spinner1.getId()==R.id.spinner1) {
                  textViewName1.setText(getName(position));
                }
                else if(spinner2.getId()==R.id.spinner2)
                {
                    textViewName2.setText(getCourse(position));
                }
                switch (parent.getId()){

                    case R.id.spinner1:
                        //    getData1();
                        // showToast("Spinner1: position=" + position);

                        break;


                    case R.id.spinner2:
                        //    getData2();
                        break;
                }*/
            }

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


            }


         /*   private String getName(int position){
                String name="";
                try {
                    //Getting object of given index
                    JSONObject json = result.getJSONObject(position);

                    //Fetching name from that object
                    name = json.getString(Config.TAG_NAME);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                //Returning the name
                return name;
            }
            private String getCourse(int position){
                String course="";
                try {
                    JSONObject json = result.getJSONObject(position);
                    course = json.getString(Config.TAG_COURSE);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
                return course;
            }*/

            private void getData1() {
                //Creating a string request
                StringRequest stringRequest1 = new StringRequest(Config.DATA_URL1,
                        new Response.Listener<String>() {
                            @Override
                            public void onResponse(String response1) {
                                JSONObject j1 = null;
                                try {
                                    //Parsing the fetched Json String to JSON Object
                                    j1 = new JSONObject(response1);

                                    //Storing the Array of JSON String to our JSON Array
                                    result1 = j1.getJSONArray(Config.JSON_ARRAY1);

                                    //Calling method getStudents to get the students from the JSON Array
                                    getStudents1(result1);
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }
                        },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error1) {

                            }
                        });

                //Creating a request queue
                RequestQueue requestQueue1 = Volley.newRequestQueue(this);

                //Adding request to the queue
                requestQueue1.add(stringRequest1);
            }

            private void getStudents1(JSONArray j1) {
                //Traversing through all the items in the json array
                for (int i = 0; i < j1.length(); i++) {
                    try {
                        //Getting json object
                        JSONObject json1 = j1.getJSONObject(i);

                        //Adding the name of the student to array list
                        students1.add(json1.getString(Config.TAG_COURSE));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

                //Setting adapter to show the items in the spinner
                spinner1.setAdapter(new ArrayAdapter<String>(MainActivity_D.this, android.R.layout.simple_spinner_dropdown_item, students1));
            }

        //Initializing TextViews

        //      textViewCourse = (TextView) findViewById(R.id.textViewCourse);
        //      textViewSession = (TextView) findViewById(R.id.textViewSession);

        //This method will fetch the data from the URL

            private void getData2() {
                //Creating a string request
                StringRequest stringRequest2 = new StringRequest(Config.DATA_URL2,
                        new Response.Listener<String>() {
                            @Override
                            public void onResponse(String response2) {
                                JSONObject j2 = null;
                                try {
                                    //Parsing the fetched Json String to JSON Object
                                    j2 = new JSONObject(response2);

                                    //Storing the Array of JSON String to our JSON Array
                                    result = j2.getJSONArray(Config.JSON_ARRAY);

                                    //Calling method getStudents to get the students from the JSON Array
                                    getStudents2(result);
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }
                        },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error1) {

                            }
                        });

                //Creating a request queue
                RequestQueue requestQueue2 = Volley.newRequestQueue(this);

                //Adding request to the queue
                requestQueue2.add(stringRequest2);
            }

            private void getStudents2(JSONArray j2) {
                //Traversing through all the items in the json array
                for (int i = 0; i < j2.length(); i++) {
                    try {
                        //Getting json object
                        JSONObject json2 = j2.getJSONObject(i);

                        //Adding the name of the student to array list
                        students2.add(json2.getString(Config.TAG_USERNAME));
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

                //Setting adapter to show the items in the spinner
                spinner2.setAdapter(new ArrayAdapter<String>(MainActivity_D.this, android.R.layout.simple_spinner_dropdown_item, students2));
            }


        }

        //InsertActivity.java

        public class InsertActivity extends AsyncTask<String, Void, String> {

            private Context context;
            Boolean error, success;

            public InsertActivity(Context context) {
                this.context = context;
            }

            protected void onPreExecute() {

            }

            @Override
            protected String doInBackground(String... arg0) {
                String s_name = arg0[0];
                //  String userName = arg0[1];
                String s_course = arg0[1];

                String link;
                String data;
                BufferedReader bufferedReader;
                String result;

                try {
                    data = "?s_name=" + URLEncoder.encode(s_name, "UTF-8");
                    //    data += "&username=" + URLEncoder.encode(userName, "UTF-8");
                    data += "&s_course=" + URLEncoder.encode(s_course, "UTF-8");


                    link = "http://insert_s1.php" + data;

                    //   link = "http://example.com/mangoair10/tryrr.php" + data;

                    URL url = new URL(link);
                    HttpURLConnection con = (HttpURLConnection) url.openConnection();

                    bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
                    result = bufferedReader.readLine();
                    return result;

                } catch (Exception e) {
                    // return new String("Exception: " + e.getMessage());
                    // return null;
                }

                return null;
            }

          /*  @Override
            protected void onPostExecute(String result) {

                String jsonStr = result;
                try {
                    JSONObject jsonObj = new JSONObject(jsonStr);
                    String query_result = jsonObj.getString("success");
                    String message_result = jsonObj.getString("message");

                    if (query_result.equalsIgnoreCase("1")) {
                        Toast.makeText(context,message_result , Toast.LENGTH_LONG).show();

                    } else if (query_result.equalsIgnoreCase("-1")) {
                        Toast.makeText(context, message_result, Toast.LENGTH_LONG).show();
                    }

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

            @Override
            protected void onPostExecute(String result) {

                String jsonStr = result;

                try {
                    JSONObject jsonObj = new JSONObject(jsonStr);
                    String query_result = jsonObj.getString("query_result");
                    Log.e("TAG", String.valueOf(query_result));

                    //   String message_result = jsonObj.getString("message");

                /*    if (query_result.equals("SUCCESS")) {
                        Toast.makeText(context, "Insert", Toast.LENGTH_LONG).show();

                    } else if(query_result.equals("FAILURE")){
                        Toast.makeText(context, "Unable to Insert", Toast.LENGTH_LONG).show();
                    }*/

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

            }
        }

        //Config.java

        public class Config {
            //JSON URL
         //   public static final String DATA_URL = "http://example.com/jsonphp1.php";
            public static final String DATA_URL1 = "http://example.com/jsonphp2.php";
            public static final String DATA_URL2 = "http://example.com/jsonphp1.php";

            //Tags used in the JSON String
            public static final String TAG_USERNAME = "username";
            public static final String TAG_NAME = "name";
            public static final String TAG_COURSE = "course";
            public static final String TAG_SESSION = "session";

            //JSON array name
            public static final String JSON_ARRAY = "result";
            public static final String JSON_ARRAY1 = "result1";
            public static final String JSON_ARRAY2 = "result2";


        }

//this is my php file
<?php
$con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect'); 

$s_name=$_POST['s_name'];
$s_course=$_POST['s_course'];
Sid=$_GET['id'];

  $query = "UPDATE `students` SET s_name = '$s_name', s_course= '$s_course' WHERE id='$id'"; 

 $inserted = mysqli_query($con, $query);

// echo  $inserted;

 if($inserted) {
    echo '{"query_result":"SUCCESS"}';
}
else{
    echo '{"query_result":"FAILURE"}';
}

mysqli_close($con);
?>

2 个答案:

答案 0 :(得分:0)

错误是不言自明的。您在响应中获得了一个无法转换为JSONObject的Integer。记录您的响应并检查它是否是有效的JSON。

答案 1 :(得分:0)

在你的asyntask onPostExecute方法打印这样的响应并发布你的回复然后会检测到错误

@Override
        protected void onPostExecute(String result) {

            String jsonStr = result;

            Log.e("TAG",jsonStr );
        }