如何将在toast中显示的id传递给另一个地图活动?
好友列表:
地图活动:
我在ListAdapter中完成了这段代码
btnLocate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stringID=getItem(position).getID();
Toast.makeText(context, "Friend ID"+stringID, Toast.LENGTH_LONG).show();
Intent mapScreen = new Intent(context, MapActivity.class);
mapScreen.putExtra("ID",getItem(position).getID());
context.startActivity(mapScreen);
}
});
这个代码在MapActivity.java
中@Override
protected String doInBackground(Void... params) {
String response;
Intent listScreen= getIntent();
Log.d(MainActivity.LOG_TAG,"UID List1"+ listScreen.getStringExtra("ID"));
String body = "UID=" + listScreen.getStringExtra("ID");
Log.d(MainActivity.LOG_TAG,"UID List2"+ listScreen.getStringExtra("ID"));
response = http.postRequest(HttpConfigs.URL_COORDINATES, body);
return response;
}`
答案 0 :(得分:0)
您可以在MapActivity中创建名为“recievedID”的实例变量,然后可以获取ID并将其存储到该实例变量中。
在MapActivity
的onCreate方法中获取ID的示例,如:
private String recievedID = ""
onCreate(...){
Intent listScreen= getIntent();
String recievedID = listScreen.getStringExtra("ID");
...
}
在AsyncTask中使用它:
@Override
protected String doInBackground(Void... params) {
String response;
String body = "UID=" + recievedID;
Log.d(MainActivity.LOG_TAG,"body = "+ body);
response = http.postRequest(HttpConfigs.URL_COORDINATES, body);
return response;
}
我希望这会有所帮助。
答案 1 :(得分:0)
在适配器类中尝试创建公共接口,如:
public interface ListItemClickListener {
void onItemClicked(int position);
}
然后在Adapter类中也执行:
ListItemClickListener listener;
然后在你现有的ListListener中放入:
listener.onItemClicked(itemId);
其中itemId是您从该点击侦听器获得的内容。
现在你必须转到你的Activity并实现你的界面。这将生成覆盖方法onItemClicked(int position) {}
。
在这种方法中你可以得到你的身份。
@Override
private void onItemClicked(int position) {
this.position = position;
}
现在,当您在列表中选择一个项目并按下它时,它也会触发Activity的方法,那时您将获得itemId
。