[英]How can I get the data from MySQL database based on the selected ID using bootstrap and Ajax?
[英]How can i get the ID selected from my spinner with data from mysql
大家好,我是android新手,我在从mysql加载微调器中获取“ id”时遇到问题。 事情是我需要一个特定的“ id”,具体取决于我选择的选项,该信息的加载良好,但我不知道如何获取该id。 例如,我选择了一个名为“ Joseph”的客户,其ID为“ 24”,如何在烤面包或textview上获取“ 24”。 我将代码留在这里,希望对您有所帮助,
创建时->
spinnercliente = (Spinner) findViewById(R.id.vencliente);
clienteList = new ArrayList<ListarClientes>();
// seleccionar las frutas del spinner
spinnercliente.setOnItemSelectedListener(this);
new Getcliente().execute();
}
private void populateSpinner() {
List<String> lables = new ArrayList<String>();
for (int i = 0; i < clienteList.size(); i++) {
lables.add(clienteList.get(i).toString());
}
ArrayAdapter<ListarClientes> spinnerAdapter = new ArrayAdapter<ListarClientes>(this, android.R.layout.simple_spinner_item,clienteList);
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnercliente.setAdapter(spinnerAdapter);
}
private class Getcliente extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(RegFacturas.this);
pDialog.setMessage("Obteniendo Clientes..");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
ServiceHandler jsonParser = new ServiceHandler();
String json = jsonParser.makeServiceCall(URL_LISTA_CLIENTE+"?Usuario="+datoNombre, ServiceHandler.GET);
Log.e("Response: ", "> " + json);
if (json != null) {
try {
JSONObject jsonObj = new JSONObject(json);
if (jsonObj != null) {
JSONArray cliente = jsonObj
.getJSONArray("clientes");
for (int i = 0; i < cliente.length(); i++) {
JSONObject catObj = (JSONObject) cliente.get(i);
ListarClientes cat = new ListarClientes(catObj.getInt("id"),
catObj.getString("nombre"));
clienteList.add(cat);
}
}else {
AlertDialog.Builder builder = new AlertDialog.Builder(RegFacturas.this);
builder.setMessage("Error al cargar los clientes").setNegativeButton("Aceptar", null).create().show();
finishActivity(1);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("JSON Data", "¿No ha recibido ningún dato desde el servidor!");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
populateSpinner();
}
}
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long id) {
Toast.makeText(adapterView.getContext(), (String) adapterView.getItemAtPosition(pos), Toast.LENGTH_SHORT).show();
ListarClientes client = (ListarClientes) adapterView.getItemAtPosition(pos);
idcli = client.getId();
}
@Override
public void onNothingSelected(AdapterView<?> parent) { }
}
ListarClienteClass
public class ListarClientes {
private int id;
private String name;
public ListarClientes() {}
public ListarClientes(int id, String name) {
this.setId(id);
this.setName(name);
}
public int getId() {return id;}
public void setId(int id) {this.id = id;}
//public String getName() {return name;}
@Override
public String toString(){return name;}
public void setName(String name) {this.name = name;}
}
代替使用ArrayAdapter<String>
,而使用ArrayAdapter<ListarClientes>
并在类ListarClientes
中覆盖方法toString
并返回名称。
将此方法添加到您的类中:
@Override
public String toString(){
return name;
}
然后,在创建适配器时,直接传递clienteList
而不是传递labels
。
之后,你可以得到类型的项目ListarClientes
内部onItemSelected
方法。
ListarClientes client = (ListarClientes) adapterView.getItemAtPosition(pos);
int id = client.getId();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.