0
I am searching client values in the database through PHP/MYSQL and I am returning via JSON, and I would like to pass to SPINNER more than 1 argument (idclient + client name)... In this case, I managed to run the SPINNER by passing the "client name" that appears to be selected... How do I pass the "client" also... In this case, I would like to replace the SPINNER ID with the "idclient"... Below is the code that I return the JSON, including in the Adapter...
Below is the code edited with the modifications, full code.
Client class
public class Cliente {
private int mId;
private String mNome;
public Cliente(int id, String nome) {
mId = id;
mNome = nome;
}
public int getId() {
return mId;
}
public String getNome() {
return mNome;
}
}
Registration Class
public class RegistrarActivity extends AppCompatActivity {
private ImageView botaoVoltar;
private Button botaoRegistrar;
private EditText textoCPF, textoEmail;
private Spinner spinnerCliente;
private Cliente cliente;
private String idcliente;
private ArrayList<Cliente> clientes = new ArrayList<>();
private RequestQueue requestQueue, requestQueue2;
private static final String URL = "http://www.caixinhadosmotoristas.com.br/spinner-cliente.php";
private static final String URLReg = "http://www.caixinhadosmotoristas.com.br/validacao.php?acao=register";
private StringRequest request, request2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registrar);
botaoVoltar = (ImageView) findViewById(R.id.botaoVoltarId);
botaoRegistrar = (Button) findViewById(R.id.botaoRegistrarId);
textoCPF = (EditText) findViewById(R.id.textoCpfId);
textoEmail = (EditText) findViewById(R.id.textoEmailId);
spinnerCliente = (Spinner) findViewById(R.id.spinnerClienteId);
requestQueue = Volley.newRequestQueue(this);
requestQueue2 = Volley.newRequestQueue(this);
RetornaJSONClientes();
ArrayAdapter arrayAdapter = new ArrayAdapter (this, android.R.layout.simple_spinner_dropdown_item, clientes);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerCliente.setAdapter(arrayAdapter);
spinnerCliente.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
cliente = (Cliente) parent.getItemAtPosition(position);
idcliente = "1";
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
cliente = null;
}
});
SimpleMaskFormatter mascaraCPF = new SimpleMaskFormatter("NNN.NNN.NNN-NN");
MaskTextWatcher maskCPF = new MaskTextWatcher(textoCPF, mascaraCPF);
textoCPF.addTextChangedListener(maskCPF);
botaoRegistrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
request2 = new StringRequest(Request.Method.POST, URLReg, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
if (jsonObject.names().get(0).equals("200")){
Toast.makeText(getApplicationContext(), jsonObject.getString("mensagem"), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), jsonObject.getString("mensagem"), Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
idcliente = "" + cliente.getId();
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("idcliente", idcliente);
hashMap.put("nome", cliente.getNome());
hashMap.put("cpf2", textoCPF.getText().toString());
hashMap.put("email", textoEmail.getText().toString());
return hashMap;
}
};
requestQueue2.add(request2);
}
});
botaoVoltar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent voltaLogin = new Intent(RegistrarActivity.this, LoginActivity.class);
startActivity(voltaLogin);
}
});
}
private void RetornaJSONClientes(){
request = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
String jsonString;
int jsonInt;
try {
JSONArray jsonArray = new JSONArray(response);
for(int i = 0; i < jsonArray.length(); i++){
jsonString = jsonArray.getJSONObject(i).getString("nome");
jsonInt = jsonArray.getJSONObject(i).getInt("idcliente");
clientes.add(new Cliente(jsonInt, jsonString));
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue.add(request);
}
}
Hello, I reversed your last edition because the previous question was already solved and you added a new question. It’s okay to create more questions, but click https://answall.com/questions/ask and put your new question there. Consider this topic closed and consider accepting the answer that helped you the most. See more here: https://pt.meta.stackoverflow.com/a/1079/3117
– Math