我正在尝试将数据发送到服务器,作为响应,我正在获取一些数据,我需要在下一个活动中使用 listview 显示这些数据,任何人都可以告诉我如何做到这一点?
使用bundle
将响应从一个活动移动到另一个活动
-创建实现可包裹的类
public class ResponseData implements Parcelable{}
-接下来将其保存为意图:
intent.putExtra(key, new ResponseData(someDataFromServer));
-最后一步 - 检索它:
Bundle data = getIntent().getExtras();
ResponseData response= (ResponseData ) data.getParcelable(key);
之后,将其添加到适配器以向用户显示它
在其他情况下,您可以将其保存在应用程序上下文或数据库中(不推荐)
我强烈建议您使用Bundle
将必要的参数传递给下一个活动,并且您应该从下一个活动本身调用服务器以接收和显示必要的信息。
-
使用 AsyncTask 将数据发送到服务器
-
在 doInBackground 中得到结果后,继续onPostexecute()
- 在 onPostexecute() 中启动下一个活动
尝试使用事件总线库,例如 greenrobot EventBus。有了它,该过程将在 4 行代码中完成:
(在发件人活动中)
EventBus.getDefault().register(this);
EventBus.getDeafult().postSticky(myDataObject);
(接收活动中)
DataObject passedData = EventBus.getDefault().getStickyEvent(DataObject.class);
您还需要一个 POJO 数据类:
public static class DataObject{
private String data;
public String getData(){
return data;
}
public void setData(String data){
this.data = data;
}
}
干净、快速、优雅:-)
- 将数据发送到服务器
-
获取响应
-
将该字符串作为 Extra 放入 Intent 并开始活动
Intent i = new Intent(this, YourNextActivityName.class);
i.putExtra("res",response.toString);
i.startActivity(); -
在"下一个活动"上获取该数据并显示。
Bundle extras = getIntent().getExtras(); if (extras != null) { String response= extras.getString("res"); }
步骤:
1)Send data.
2)Get Response
3)if respose is ok, save that in a static string and fire intent and on the next
activity get the respose using classname.your string. simple and best way.