如何将用户ID从列表适配器传递到地图活动?

时间:2017-04-06 05:53:48

标签: android

如何将在toast中显示的id传递给另一个地图活动?

好友列表:

Friends list

地图活动:

enter image description here

我在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;
        }`

2 个答案:

答案 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