如何通过截击将微调器数据发送到数据库?
所有代码均已发送,没有问题,只有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();
出什么问题了? 谢谢大家。
答案 0 :(得分:1)
您要将所选项目存储在此处的变量中
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
行,然后尝试-也许行得通
希望有帮助。
答案 1 :(得分:1)
@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;在您的代码中。
我希望它能帮助您...!