Je souhaite envoyer les identifiants se_id et se_name de l'élément sélectionné à une autre activité. J'ai récupéré le se_id et le se_name de la base de données mais il montrera seulement le se_name dans la liste. Si un utilisateur sélectionne un nom dans la liste, il amène l'utilisateur à une autre activité où les noms se_id et se_name de l'élément sélectionné doivent être envoyés. C'est ma SEList.class et je vais envoyer le se_id et le se_name dans ChooseOptionSE.class. Comment l'envoyer en utilisant l'intention? S'il vous plaît répondre dès que possible. Merci d'avance.Après avoir récupéré les données de la base de données et les avoir placées dans la liste, je veux envoyer l'ID de l'élément sélectionné dans une autre activité
package com.example.user.entapp;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class SEList extends AppCompatActivity {
int sup_id, val;
String s1, msg, se_id, se_name;
ListView list;
ArrayList<String> arrayList = new ArrayList<>();
ArrayAdapter<String> arrayAdapter;
JSONParser jsonParser=new JSONParser();
JSONArray pro;
URL url = new URL();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_selist);
sup_id=getIntent().getExtras().getInt("sup_id");
list= (ListView) findViewById(R.id.list_se);
new DataReceive().execute();
}
public class DataReceive extends AsyncTask<String, String, String> {
ProgressDialog progressDialog = new ProgressDialog(SEList.this);
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog.setMessage("Please wait...");
progressDialog.setCancelable(false);
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
try{
List<NameValuePair> pairlist = new ArrayList<NameValuePair>();
s1=Integer.toString(sup_id);
pairlist.add(new BasicNameValuePair("supervisor_id", s1));
JSONObject jsonObject=jsonParser.makeHttpRequest(url.RECEIVE_SENAME,"POST",pairlist);
val=jsonObject.getInt("val");
msg=jsonObject.getString("msg");
//id1=jsonObject.getInt("id");
pro=jsonObject.getJSONArray("information");
for(int i=0; i<pro.length(); i++) {
JSONObject jo = pro.getJSONObject(i);
se_id = jo.getString("se_id");
se_name = jo.getString("se_name");
arrayList.add(se_name);
}
}catch (Exception e){
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
progressDialog.dismiss();
if(val==1){
Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_SHORT).show();
arrayAdapter=new ArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,arrayList);
list.setAdapter(arrayAdapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String se = (String) parent.getItemAtPosition(position);
Intent intent = new Intent(SEList.this, ChooseOptionSE.class);
intent.putExtra("se_id",se_id);
startActivity(intent);
}
});
}
else{
Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_SHORT).show();
}
}
}
}
Vous ne savez pas quel est l'objectif final, mais il semble que vous ajoutiez seulement 'se_name' à arrayList et que vous n'ajoutiez jamais' se_id'. Est-ce que c'est ce que tu veux faire? – Mackattack
Vous ne stockez pas votre 'se_id' dans un endroit où vous ne pouvez pas l'obtenir directement. Vous devez d'abord le stocker dans un tableau ou créer votre propre classe 'model'. Utilisez cela et obtenez l'identifiant de leur. – Shailesh
L'objectif est d'envoyer le nom et le se_id de l'élément sélectionné à une autre activité. J'ai utilisé onItemClick() pour que les noms se_id et se_name de l'élément sélectionné puissent être connus mais je ne suis pas sûr de savoir comment l'utiliser pour obtenir les valeurs de se_id et se_name de l'élément sélectionné. Pouvez-vous s'il vous plaît m'aider à ce sujet? Et je n'ajoute pas se_id parce que je ne veux pas montrer l'identifiant à l'utilisateur, seul le nom sera affiché. – Israt