将数据发送到服务器后,如何在下一个活动中打印响应



我正在尝试将数据发送到服务器,作为响应,我正在获取一些数据,我需要在下一个活动中使用 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;
    }
}

干净、快速、优雅:-)

  1. 将数据发送到服务器
  2. 获取响应

  3. 将该字符串作为 Extra 放入 Intent 并开始活动

    Intent i = new Intent(this, YourNextActivityName.class);
    i.putExtra("res",response.toString);
    i.startActivity();

  4. 在"下一个活动"上获取该数据并显示。

     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.