2017-10-25 11 views
-1

私はAndroidで非常に新しいです。私はmysqlデータベースに保存されているストアスピナーの選択項目IDを必要とします。私は既にmysqlデータベースからアイテムをスピナーに取得します。選択した項目IDをグローバル変数で選択してください。助けてください。 この私のコードですmysqlデータベースからスピナーを選択項目IDを取得します

AddProject

RequestQueue requestQueue; 
private ArrayList<Category> categoriesList; 

// Url to get all categories 
private String URL_COMPANY = "http://www.mybusket.com/pmsapp/webs/get_all_company.php"; 
//Data add 
private String INSERT_URL = "http://192.168.1.9:8082/pmsapp/pmsemp/webapi/project_add.php"; 

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

    Spinner = (Spinner) findViewById(R.id.spinner); 
    ProjectName = (EditText)findViewById(R.id.projectName); 
    IsBilling = (EditText)findViewById(R.id.IsBilling); 
    BillingBy = (EditText)findViewById(R.id.billingBy); 
    ProjectDes = (EditText)findViewById(R.id.projectDescription); 

    Save = (Button)findViewById(R.id.save); 

    requestQueue = Volley.newRequestQueue(getApplicationContext()); 

    categoriesList = new ArrayList<Category>(); 

    // spinner item select listener 
    Spinner.setOnItemSelectedListener(this); 
    new GetCompany().execute(); 

} 


/** 
* Adding spinner data 
* */ 
private void populateSpinner() { 
    List<String> lables = new ArrayList<String>(); 

    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 
    Spinner.setAdapter(spinnerAdapter); 
} 

private class GetCompany extends AsyncTask<Void, Void, Void> { 

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

    @Override 
    protected Void doInBackground(Void... voids) { 

     ServiceHandler jsonParser = new ServiceHandler(); 
     String json = jsonParser.makeServiceCall(URL_COMPANY, 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("companyid"), 
           catObj.getString("companyname")); 


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

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

    //Toast.makeText(getApplicationContext(), parent.getItemAtPosition(position).toString() + " Selected" , Toast.LENGTH_LONG).show(); 

} 

私はspinner..Pleaseから選択した項目は私を助けたときにその会社のIDを保存します。このコードを使用することにより

+0

をあなたは、コードの大きな塊をデバッグする人々を求めています。エラーが発生すると思われる領域を示す小さなテストケースを書いた方が良いでしょう。 –

答えて

1

あなたはID

categoriesList.get(Spinner.getSelectedItemPosition()).getId(); 

例得る:スピナーonItemSelectedメソッド内のコードの下に書く

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

    Toast.makeText(getApplicationContext(), categoriesList.get(position).getId() + " Selected" , Toast.LENGTH_LONG).show(); 

} 
関連する問題