[英]how to send spinner data by volley to database
如何通過截擊將微調器數據發送到數據庫?
代碼全部發送沒問題,只有Spinner字段不發送到數據表。
String[] Cat = {"املاک","وسایل نقلیه","لوازم الکترونیکی","مربوط به خانه","خدمات","وسایل شخصی","سرگرمی و فراغت","اجتماعی","برای کسب و کار","استخدام و کاریابی"};
String[] CatCode = {"1","2","3","4","5","6","7","8","9","10"};
String cate = "";
發送數據類:
String name,description,phone,email,city;
String[] Cat = {"املاک","وسایل نقلیه","لوازم الکترونیکی","مربوط به خانه","خدمات","وسایل شخصی","سرگرمی و فراغت","اجتماعی","برای کسب و کار","استخدام و کاریابی"};
String[] CatCode = {"1","2","3","4","5","6","7","8","9","10"};
String cate = "";
StringRequest AddAdvReq;
private String Post_Url = "http://192.168.1.102/tablo/api/get_new_adv"
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_adv);
defineVolleyCodes();
defineViews();
defineClicks();
ArrayAdapter<String> catAdapter = new ArrayAdapter<>(getApplicationContext(),R.layout.spinner_row,Cat);
SpinCategory.setAdapter(catAdapter);
SpinCategory.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
cate = CatCode[position];
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
cate = CatCode[0];
}
});
}
//==========================
private void defineVolleyCodes() {
AddAdvReq = new StringRequest(Request.Method.POST, Post_Url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(AddAdv.this, response, Toast.LENGTH_SHORT).show();
finish();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(AddAdv.this, error.toString(), Toast.LENGTH_SHORT).show();
}
}
)
{
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
//Add Post Parameters
String STRImage = getStringImage(bitmap);
params.put("name",name);
params.put("description",description);
params.put("phone",phone);
params.put("email",email);
params.put("city",city);
params.put("category_id",cate);
return params;
}
};
}
//==========================
private void defineViews() {
//===========================Define All EditTexts
ETxtName = (EditText)findViewById(R.id.etxt_name);
ETxtDescription = (EditText)findViewById(R.id.etxt_description);
ETxtPhone = (EditText)findViewById(R.id.etxt_phone);
ETxtEmail = (EditText)findViewById(R.id.etxt_email);
ETxtCity = (EditText)findViewById(R.id.etxt_city);
//==============================Define All Buttons
SpinCategory = (Spinner)findViewById(R.id.spin_category);
//==============================Define All Buttons
BtnAddAdv = (Button)findViewById(R.id.btn_add_adv);
}
//==========================
private void defineClicks() {
BtnAddAdv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Load Fields
name = ETxtName.getText().toString();
description = ETxtDescription.getText().toString();
phone = ETxtPhone.getText().toString();
email = ETxtEmail.getText().toString();
city = ETxtCity.getText().toString();
cate = SpinCategory.getSelectedItem().toString();
//Add Request To Queue
AppController.getInstance().addToRequestQueue(AddAdvReq);
}
});
}
}
params.put("category_id",cate); cate = SpinCategory.getSelectedItem().toString();
有什么問題? 謝謝大家。
您將所選項目存儲在此處的變量中
SpinCategory.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
cate = CatCode[position];
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
cate = CatCode[0];
}
});
cate
- 使用它。 在單擊偵聽器中,您使用可能無效的微調器中的新值覆蓋它(我無法告訴您更多信息,因為我沒有看到整個代碼)
只需刪除此cate = SpinCategory.getSelectedItem().toString();
來自BtnAddAdv
單擊偵聽器的行並嘗試 - 也許它會起作用
希望能幫助到你。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_adv);
defineVolleyCodes(); // Remove heare
defineViews();
defineClicks(); // Remove heare
ArrayAdapter<String> catAdapter = new ArrayAdapter<>(getApplicationContext(),R.layout.spinner_row,Cat);
SpinCategory.setAdapter(catAdapter);
SpinCategory.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
cate = parent.getItemAtPosition().toString();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
defineVolleyCodes();
defineClicks();
}
請在上面的代碼提到的SpinCategory
之后設置此方法調用。
然后在BtnAddAdv
cate= cate; 在你的代碼中。
我希望它會幫助你...!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.