Android 将单击的Listview的特定值传递给另一个活动
我有两个类,一个是ReadData,另一个是Read2,我想将ReadData类listview点击条的ITEM_ID值传递给另一个activity Read2.class,我已将代码放在下面。我应该在代码中做什么才能成功完成任务Android 将单击的Listview的特定值传递给另一个活动,android,listview,Android,Listview,我有两个类,一个是ReadData,另一个是Read2,我想将ReadData类listview点击条的ITEM_ID值传递给另一个activity Read2.class,我已将代码放在下面。我应该在代码中做什么才能成功完成任务 public class ReadData extends ListActivity { globalClass gc=new globalClass(); String id=gc.getid();
public class ReadData extends ListActivity {
globalClass gc=new globalClass();
String id=gc.getid();
String url = "http://xyz.php?id="+ id;
ArrayList<HashMap<String, String>> Item_List;
ProgressDialog PD;
ListAdapter adapter;
// JSON Node names
public static final String ITEM_ID = "id";
public static final String ITEM_NAME = "item";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Item_List = new ArrayList<HashMap<String, String>>();
PD = new ProgressDialog(this);
PD.setMessage("Loading.....");
PD.setCancelable(false);
getListView().setOnItemClickListener(new ListitemClickListener());
ReadDataFromDB();
}
private void ReadDataFromDB() {
PD.show();
JsonObjectRequest jreq = new JsonObjectRequest(Method.GET, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
int success = response.getInt("success");
if (success == 1) {
JSONArray ja = response.getJSONArray("orders");
for (int i = 0; i < ja.length(); i++) {
JSONObject jobj = ja.getJSONObject(i);
HashMap<String, String> item = new HashMap<String, String>();
/*------------------particular order id ----------------*/
item.put(ITEM_ID, jobj.getString(ITEM_ID));
/*----------------------------------*/
item.put(ITEM_NAME,jobj.getString(ITEM_NAME));
Item_List.add(item);
} // for loop ends
String[] from = { ITEM_ID, ITEM_NAME };
int[] to = { R.id.item_id, R.id.item_name };
adapter = new SimpleAdapter(
getApplicationContext(), Item_List,
R.layout.list_items, from, to);
setListAdapter(adapter);
PD.dismiss();
} // if ends
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
PD.dismiss();
}
});
// Adding request to request queue
MyApplication.getInstance().addToReqQueue(jreq);
}
class ListitemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Intent modify_intent = new Intent(ReadData.this,Read2.class);
modify_intent.putExtra("item", Item_List.get(position));
startActivity(modify_intent);
}
}
}
公共类ReadData扩展ListActivity{
globalClass gc=新的globalClass();
String id=gc.getid();
字符串url=”http://xyz.php?id=“+id;
ArrayList项目列表;
进展性帕金森病;
列表适配器;
//JSON节点名称
公共静态最终字符串项\u ID=“ID”;
公共静态最终字符串ITEM_NAME=“ITEM”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Item_List=new ArrayList();
PD=新进度对话框(本);
PD.setMessage(“加载…”);
PD.可设置可取消(假);
getListView().setOnItemClickListener(新ListitemClickListener());
ReadDataFromDB();
}
私有void ReadDataFromDB(){
PD.show();
JsonObjectRequest jreq=新的JsonObjectRequest(Method.GET,url,null,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
试一试{
int success=response.getInt(“success”);
如果(成功==1){
JSONArray ja=response.getJSONArray(“订单”);
对于(int i=0;i
试试这个:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Intent modify_intent = new Intent(ReadData.this,Read2.class);
HashMap<String, String> selected_item = Item_List.get(position);
modify_intent.putExtra("item", selected_item.get(ITEM_ID));
startActivity(modify_intent);
}
您发布的代码是正确的。问题是什么?当我放入--modify_intent.putExtra(“传递的数据键”,jobj.getString(ITEM_ID)),我无法将ITEM_ID的值传递给另一个类----在类ListItemClickListener中,您使用了什么代码来检索Read2中的代码?这个类在应用程序中显示了正确的列表,但当我传递项目时,ID没有出现…json-->{“订单”:[{“ID”:“12”,“项目”:“abc”},{“ID”:“13”,“项目”:“xyz”},,“成功”:1}
Bundle bundle = getIntent().getExtras();
if(bundle != null) {
String item = bundle.getString("item")
}