2016-07-19 2 views
0

Я извлекаю значения из базы данных в Spinner его работу, но я хочу вставить выбранный элемент из Spinner в базу данных, как я могу это сделать?Как я могу вставить выбранный элемент spinner в базу данных mysql для мобильного приложения?

Я использую два Spinners, и оба Spinner's, указанный элемент должен быть включен в базу данных.

Как это сделать и что мне нужно сделать, чтобы вставить элемент в PHP?

активность Класс: -

public class MainActivity_d2 extends AppCompatActivity implements AdapterView.OnItemSelectedListener { 

    //Declaring an Spinner 
    private Spinner spinner2, spinner1; 

    //An ArrayList for Spinner Items 

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

    //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_d1); 

     //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); 
     // spinner1.setOnItemSelectedListener(this); 

     //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(); 
    } 

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

    /* switch (view.getId()){ 

      case R.id.spinner1: 
       getData1(); 
       break; 


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

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


     if (spinner1.getId() == R.id.spinner1) { 
      //do this 
      textViewName1.setText(""); 
     } else if (spinner2.getId() == R.id.spinner2) { 
      //do this 
      textViewName2.setText(""); 
     } 

    } 

    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_d2.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_d2.this, android.R.layout.simple_spinner_dropdown_item, students2)); 
    } 
} 

ответ

0

Я предполагаю, что у вас есть кнопки Save/OK для вставки вращателя выбранного элемента в базу данных.

Получить вертушку выбранного значения элемента

String spinner1SlctdVal = spinner1.getSelectedItem().toString(); // Course spinner 
String spinner2SlctdVal = spinner2.getSelectedItem().toString(); // Username spinner 

Для вставки блесны выбранного элемента в PHP

you have to call PHP web-service using AsyncTask or other methods. 

После значений выбора как из блесны, когда пользователь нажимает на кнопке Сохранить/OK ниже кода выполняется.

Код для Save/OK нажатия кнопки:

mBtnSave.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     String spinner1SlctdVal = spinner1.getSelectedItem().toString(); 
     String spinner2SlctdVal = spinner2.getSelectedItem().toString(); 

     // Insert spinner selected values in database 
     SQLiteDatabase database = this.getWritableDatabase(); 
     ContentValues values = new ContentValues(); 
     values.put("course", spinner1SlctdVal); // "course" is column name of your table 
     values.put("username", spinner2SlctdVal); // "username" is column name of your table 
     database.insert("users", null, values); // "users" is your table name 
     database.close(); 

     // Call AsynTask or other method for call web-service (for insert selected values into PHP server) 
    } 
}); 
+0

пожалуйста скажите мне весь запрос для вставки, что выбранный элемент в PHP-сервер – mukund

+0

Я использую базу данных mysql, пожалуйста, дайте мне предложение для mysql db. – mukund

0

Если вы хотите сохранить кок выбранного пункта в SQLite затем следует этому коду 1.Create локальной БД 2.In Вашей деятельность вставила выбранный значения следующим образом.

LocalDatabase:

public class SpinnerDatabaseHandler extends SQLiteOpenHelper { 
private static final int DATABASE_VERSION = 1; 

// Database Name 
private static final String DATABASE_NAME = "spinnerModule"; 

// Labels table name 
private static final String TABLE_LABELS = "spinner"; 

// Labels Table Columns names 
private static final String KEY_ID = "id"; 
private static final String KEY_SPINONE = "spinone"; 
private static final String KEY_SPINTWO = "spintwo"; 
SQLiteDatabase db; 

public LoginDatabaseHandler(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 
@Override 
public void onCreate(SQLiteDatabase db) { 
    // Category table create query 
    String CREATE_CATEGORIES_TABLE = "CREATE TABLE " + TABLE_LABELS + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY," 
      + KEY_SPINONE + " TEXT,"   

      + KEY_SPINTWO + " TEXT" + ");"; 


    db.execSQL(CREATE_CATEGORIES_TABLE); 
} 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // Drop older table if existed 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_LABELS); 

    // Create tables again 
    onCreate(db); 
} 
public void insertLabel(String spinone,String spintwo){ 
    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues values = new ContentValues(); 
    //values.put(KEY_ID,id); 
    values.put(KEY_SPINONE,spinone); 
    values.put(KEY_SPINTWO,spintwo); 

    // Inserting Row 
    db.insert(TABLE_LABELS, null, values); 
    db.close(); // Closing database connection 
} 

}

Чтобы вставить значения в SQLite от Вашей деятельности в качестве 1.Initialize SQLite базы данных в вашем mainactivity, как

SpinnerDatabaseHandler db=new SpinnerDatabaseHandler(getApplicationContext); 

2.После что добавить эти коды

String firstspin=spinner1.getSelectedItem.toString(); 
String secondspin=spinner2.getSelectedItem.toString(); 
db.insertlabel(firstspin,secondspin); 
+0

, пожалуйста, дайте мне код для php mysql, чтобы вставить выделенный элемент в базу данных. Что я могу сделать для этого в php и java, пожалуйста, дайте мне предложение. – mukund

0

файл Php для вставки значения:

<?php 
    $_SERVER['REQUEST_METHOD']=='POST'; 
    define('HOST','hostname'); 
    define('USER','username'); 
    define('PASS','password'); 
    define('DB','databasename'); 
    $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect'); 

    $firstspin=$_POST['lspinone']; 
    $secondspin=$_POST['lspintwo']; 



    $query = "INSERT INTO `spinnertable` (`spione`, `spintwo`) VALUES ('".$firstspin."', '".$secondspin."')"; 
    $inserted = @mysqli_query($con, $query); 
    if($inserted == 1){ 
        echo "success"; 
       }else{ 
        echo "user exist already"; 
       } 
       mysqli_close($con); 

?> 

код для передачи значений из андроида в PHP:

package nidhinkumar.gridcam.logindetails; 

public class MainPAge extends AppCompatActivity{ 
private static final String LOGINALL_URL = "http://smpleuser.com/07032016/php/nameofphpfile.php"; 


@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.spinnerpage); 
    String spinone=spinner1.getSelectedItem.toString(); 
    Stirng spintwo=spinner2.getSelectedItem.toString(); 

    // Call AsyncTask for send selected value to PHP server. 
    userSpinnr(spinone, spintwo); 
} 



private void userSpinnr(final String lspinone, final String lspintwo) { 
    rando=(int)(Math.random()*10); 
    class LoginSpinners extends AsyncTask<String,Void,String> { 
     ProgressDialog loading; 


     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 

      loading = ProgressDialog.show(LoginPage.this, "Do you know?", "", true, false); 

     } 

     @Override 
     protected void onPostExecute(String s) { 
      super.onPostExecute(s); 
      if(s.equalsIgnoreCase("success")) { 

       //do the action what you want 
       } catch (SQLException e) { 

       } 


      }else{      
        loading.dismiss(); 
       } catch (SQLException e) { 

       } 
      } 
     } 

     @Override 
     protected String doInBackground(String... params) { 
      HashMap<String,String> data = new HashMap<>(); 
      data.put("lspinone",params[0]); 
      data.put("lspintwo",params[1]); 

      RegisterUserClass ruc = new RegisterUserClass(); 
      String result = ruc.sendPostRequest(LOGINALL_URL,data); 
      return result; 
     } 
    } 
    LoginSpinners ulc = new LoginSpinners(); 
    ulc.execute(lspinone,lspintwo); 

} 

}

+0

Я хочу выбрать элемент spinner, а затем выбранный элемент вставить в php mysql db, используя onItemSelectedListener, как это сделать? – mukund

+0

Вы можете объяснить это подробно –

+0

Позвоните пользователюSpinnr (spinone, spintwo); метод при нажатии кнопки «Сохранить/ОК». Просмотрите мой ответ, когда найдете событие нажатия кнопки и добавьте ниже код в последнюю строку кнопки onClick(). ** userSpinnr (spinner1SlctdVal, spinner2SlctdVal); ** –