2016-07-21 5 views
-1

私はいくつかのページでユーザーが指定された4-5オプションから1つのオプションを選択する必要があるアプリケーションを開発しています。現在、この機能にスピナーを使用しています。これは、ユーザーが3番目または4番目のオプション私はMySQLのPHPのdatabase.followingで特定のオプションは、私が今使っているコードであることを挿入しない方法)どのように選択したオプションをgivn 4-5オプションからデータベースに挿入するには、スピナーを使用しますか?

//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); 
?> 
+0

を検出します。..の –

+0

が重複する可能性をあなたのJSONレスポンスを投稿[アンドロイドでJSONをパースする方法](のhttp:/ /stackoverflow.com/questions/9605913/how-to-parse-json-in-android) – Rohit5k2

+1

SOの関連記事は1000件です。あなたは検索しようとしましたか?まあ、整数をオブジェクトとして解析することはできません。 – Rohit5k2

答えて

0

エラーは自明である。..を選択します。応答ではJSONObjectに変換できないIntegerを取得しています。あなたの応答を記録し、それが有効なJSONであるかどうかを確認します。このようなあなたのasyntask onPostExecute方法印刷対応して

+0

私はLog.e( "TAG"、String.valueOf(query_result)); – mukund

+0

ここでは応答がありません – mukund

0

とあなたの応答を投稿エラーが

@Override 
     protected void onPostExecute(String result) { 

      String jsonStr = result; 

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

"java.lang.NullPointerException:printlnにメッセージが必要です"このメッセージはlogcatに表示されます – mukund

+0

Log.e( "TAG"、 "response is:" + jsonStr); –

+0

私はlogcatショーでこれをやっている "http://example.in/Spinner/insert_s1.php?s_name=tt&s_course=ss"この値がブラウザ上のURLをクリックしたときにデータが表示されない – mukund

関連する問題