我想將列表視圖的選定項目的se_id和se_name發送到其他活動。我從數據庫中檢索了se_id和se_name,但它只會在列表中顯示se_name。如果用戶從列表中選擇一個名稱,它將使用戶訪問另一個活動,其中應該發送所選項目的se_id和se_name。這是我的SEList.class,我將在ChooseOptionSE.class中發送se_id和se_name。我如何使用意圖發送它?請儘可能儘快回覆。提前致謝。從數據庫中檢索數據並將其放入列表中後,我想將列表中選定項目的ID發送到另一個活動
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();
}
}
}
}
不知道什麼最終目標是在這裏,但它看起來像你只添加'se_name'到ArrayList和永不加'se_id'。這是你想要做的嗎? – Mackattack
你並沒有將你的'se_id'存儲到任何地方,所以你不能直接獲取它。首先,您需要將其存儲在某個數組中或創建您自己的「模型」類。使用它,並從他們的身份證。 – Shailesh
目標是將所選項目的se_name和se_id發送到其他活動。我已經使用onItemClick(),以便可以知道所選項目的se_id和se_name,但我不確定如何使用它來獲取所選項目的se_id和se_name的值。你能幫我解決嗎?而且我不會添加se_id,因爲我不想將id顯示給用戶,只會顯示名稱。 – Israt