Ich möchte die se_id und se_name des ausgewählten Elements der Listenansicht an eine andere Aktivität senden. Ich habe die se_id und se_name aus der Datenbank abgerufen, aber es wird nur den se_name in der Liste angezeigt. Wenn ein Benutzer einen Namen aus der Liste auswählt, führt er den Benutzer zu einer anderen Aktivität, wo die se_id und se_name des ausgewählten Elements gesendet werden sollen. Dies ist meine SEList.class und ich werde die se_id und se_name in ChooseOptionSE.class senden. Wie sende ich es mit Absicht? Bitte antworten Sie so bald wie möglich. Danke im Voraus.Nach dem Abrufen von Daten aus der Datenbank und dem Einfügen in die Liste möchte ich die ID des ausgewählten Elements in der Liste an eine andere Aktivität senden.
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();
}
}
}
}
Nicht sicher, was das Endziel hier ist, aber es sieht so aus, als würden Sie 'se_name' nur zu arrayList hinzufügen und niemals' se_id' hinzufügen. Wollen Sie das tun? – Mackattack
Sie speichern Ihre 'se_id' nicht irgendwo, so dass Sie das nicht direkt bekommen können. Zuerst müssen Sie es in einem Array speichern oder eine eigene Modellklasse erstellen. Verwenden Sie das und erhalten Sie ID von ihrem. – Shailesh
Ziel ist es, den se_name und se_id des ausgewählten Elements an eine andere Aktivität zu senden. Ich habe onItemClick() verwendet, so dass die se_id und se_name des ausgewählten Elements bekannt sein kann, aber ich bin mir nicht sicher, wie man es verwendet, um die Werte der se_id und se_name des ausgewählten Elements zu erhalten. Kannst du mir bitte dabei helfen? Und ich füge se_id nicht hinzu, weil ich die ID dem Benutzer nicht zeigen möchte, nur der Name wird angezeigt. – Israt