java - 如何在下一个 Activity 中显示响应

标签 java android json httprequest httpresponse

在我的应用程序中,我正在搜索模块,我之前的问题是 How to show json response in other activity?为此,我在服务器中发送请求,之后我得到响应,作为响应我得到一些数据,我想在下一页显示这些数据,我不知道该怎么做,有人可以帮忙吗?

class AttemptLogin extends AsyncTask<String, String, String> {

    boolean failure = false;

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(getActivity());
        pDialog.setMessage("Processing..");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

    @SuppressWarnings("unused")
    @Override
    protected String doInBackground(String...args) {
        //Check for success tag
        //int success;
        Looper.prepare();
        String userids = strtext.toString();


        String contri=spcountry.getText().toString();
        String states=spstate.getText().toString();
        String city=spcity.getText().toString();

        System.out.println("Email : " + userids);
        System.out.println("Email : " + agesfrom);
        System.out.println("Days : " + agesto);
        System.out.println("Months : " + heightfroms);
        System.out.println("Years : " + heighttos);
        System.out.println("User : " + language);
        System.out.println("Password : " + religion);
        System.out.println("Gender : " + marriage);
        System.out.println("First NM : " + contri);
        System.out.println("Last NM : " + states);
        System.out.println("Profile : " + city);*/



         try {
             //Building Parameters


             List<NameValuePair> params = new ArrayList<NameValuePair>();
             params.add(new BasicNameValuePair("user_login_id", userids));
            /* params.add(new BasicNameValuePair("age_from", agesfrom));
             params.add(new BasicNameValuePair("age_to", agesto));
             params.add(new BasicNameValuePair("height_from", heightfroms));
             params.add(new BasicNameValuePair("height_to", heighttos));
             params.add(new BasicNameValuePair("language", language));
             params.add(new BasicNameValuePair("religion", religion));
             params.add(new BasicNameValuePair("maritalstatus", marriage));
             params.add(new BasicNameValuePair("country", contri));
             params.add(new BasicNameValuePair("state", states));
             params.add(new BasicNameValuePair("city", city));
             */

             params.add(new BasicNameValuePair("version", "apps"));

             Log.d("request!", "starting");
             // getting product details by making HTTP request
            json = jsonParser.makeHttpRequest (
                 SEARCH_URL, "POST", params);

             //check your log for json response
             Log.d("Request attempt", json.toString());


             final String str = json.toString();

             JSONObject jobj = new JSONObject(json.toString());
             final String msg = jobj.getString("searchresult");

             return json.getString(TAG_SUCCESS);
             }catch (JSONException e) {
             e.printStackTrace();
         }
         return null;
    }

    // After completing background task Dismiss the progress dialog

    protected void onPostExecute(String file_url) {
        //dismiss the dialog once product deleted
         pDialog.dismiss();

            Intent intent=new Intent(getActivity(),SearchResults.class);
            intent.putExtra("id", strtext);
            intent.putExtra("whole", json.getString(TAG_SUCCESS));
            startActivity(intent);

}}

搜索结果.java

    Id=this.getIntent().getStringExtra("id");
    System.out.println("searching id"+Id);
    results=this.getIntent().getStringExtra("whole");
    System.out.println("Results"+results);
    nomathc=(TextView)findViewById(R.id.no_match);

最佳答案

可以通过以下方式在下一个 Activity 中显示响应

解决方案 1 响应以字符串形式出现,因此使用

将整个响应传递给下一个 Activity
     intent.putExtras("Key",response);

解决方案 2 创建一个单独的 getter setter 类,通过使用此类,您可以在我们的整个应用程序中设置和获取值。

像这样

第一步

public class SingleObject {

 //create an object of SingleObject
 private static SingleObject instance = new SingleObject();

 private String name;
 private String age;

 //make the constructor private so that this class cannot be
 //instantiated
   private SingleObject(){}

 //Get the only object available
 public static SingleObject getInstance(){
  return instance;
 }

  // here u can declare getter setter


public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getAge() {
    return age;
}

public void setAge(String age) {
    this.age = age;
}

}

第 2 步 在这样的第一个 Activity 中使用它

 Singleton tmp = Singleton.getInstance( );
  tmp.setName(""); 

第三步

在接下来的 Activity 中

  Singleton tmp = Singleton.getInstance( );
  String name =  tmp.getName;

解决方案 3:制作一个 hashmap 的静态 Arraylist 并在任何 Activity 中使用它

或者可能有更多的解决方案.....

关于java - 如何在下一个 Activity 中显示响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27376387/

相关文章:

java - 在 Bean 类中调用 String 返回 Null

java - 如何修复工具栏在选择另一个选项卡之前不更改标题的问题?

python - 从 pandas 数据帧生成自定义 JSON 格式输出

java - 如何处理对话框窗口以单击 selenium webdriver 中的按钮

java - 如何在 selenium 中设置 firefoxdriver 的驱动程序路径

java - 将列表从 Java(使用 JDBC)传递到 Microsoft SQL Server 的最佳方法

android - 具有单一数据输入的 MPAndroid 线图

java - 存储包含多种字符的字符串

json - 取消具有可变数量的相似字段的 JSON 对象

ios - 无法将 JSON 响应分配给预先声明的数组