我正在尝试向服务器发送数据,作为回应,我正在使用listview获取一些我需要在下一个活动中显示的数据,是否可以告诉我如何执行此操作?
答案 0 :(得分:3)
使用bundle
将您的回复从一个活动转移到另一个活动
-create实现Parcelable
的类 public class ResponseData implements Parcelable{}
- 接下来将其保存在意图中:
intent.putExtra(key, new ResponseData(someDataFromServer));
- 最后一步 - 重温它:
Bundle data = getIntent().getExtras();
ResponseData response= (ResponseData ) data.getParcelable(key);
之后将其添加到适配器以显示给用户
在其他情况下,您可以将其保存在应用程序上下文或数据库中(不推荐)
答案 1 :(得分:1)
我强烈建议您使用Bundle
将必要参数传递给下一个活动,并使用从下一个活动本身拨打电话到服务器接收和显示必要的信息。
答案 2 :(得分:0)
使用AsyncTask
在doInBackground中获得结果后,继续 onPostexecute()
答案 3 :(得分:0)
尝试使用事件总线库,例如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;
}
}
清洁,快速和优雅: - )
答案 4 :(得分:0)
获取回复
在Intent中将该字符串设置为Extra并启动活动
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");
}
答案 5 :(得分:0)
步骤:
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.