Android 使用截击更改getConnection方法

Android 使用截击更改getConnection方法,android,android-volley,Android,Android Volley,我在我的程序中使用getConnection方法,我想将响应恢复为一个变量,比如“stringresult”,以便在另一个类中使用,但我不知道我必须如何更改该方法。有人有主意吗 public class Webservice { public static void getConnection(Context context, String url){ RequestQueue queue = Volley.newRequestQueue(context); StringRe

我在我的程序中使用getConnection方法,我想将响应恢复为一个变量,比如“stringresult”,以便在另一个类中使用,但我不知道我必须如何更改该方法。有人有主意吗

public class Webservice {
 public static void getConnection(Context context, String url){

    RequestQueue queue = Volley.newRequestQueue(context);
    StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.i("TEST", "Response is: "+ response);
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.i("TEST","That didn't work!");
        }
    });
    queue.add(stringRequest);

 }
}
公共类Web服务{
公共静态void getConnection(上下文、字符串url){
RequestQueue=Volley.newRequestQueue(上下文);
StringRequest StringRequest=新的StringRequest(Request.Method.GET,url,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Log.i(“测试”,“响应为:”+响应);
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.i(“TEST”,“那没用!”);
}
});
添加(stringRequest);
}
}

您可以在应用程序类中创建一个变量,并像这样在整个应用程序中使用它

public class App extends android.app.Application {


   private static App instance;
   public static String resultResponse;

   public static App getInstance() {
    return instance;
   }



   @Override
   public void onCreate() {
    super.onCreate();

    instance = this;
   }  
}
 public class Webservice {
   public static void getConnection(Context context, String url){

   RequestQueue queue = Volley.newRequestQueue(context);
   StringRequest stringRequest = new StringRequest(Request.Method.GET,    
   url,
        new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.i("TEST", "Response is: "+ response);
                App.getInstance().resultResponse = response;
            }
        }, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Log.i("TEST","That didn't work!");
     }
  });
    queue.add(stringRequest);

 }
 }
然后,当你得到响应时,像这样保存它

public class App extends android.app.Application {


   private static App instance;
   public static String resultResponse;

   public static App getInstance() {
    return instance;
   }



   @Override
   public void onCreate() {
    super.onCreate();

    instance = this;
   }  
}
 public class Webservice {
   public static void getConnection(Context context, String url){

   RequestQueue queue = Volley.newRequestQueue(context);
   StringRequest stringRequest = new StringRequest(Request.Method.GET,    
   url,
        new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                Log.i("TEST", "Response is: "+ response);
                App.getInstance().resultResponse = response;
            }
        }, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Log.i("TEST","That didn't work!");
     }
  });
    queue.add(stringRequest);

 }
 }
在您的舱单中应用

现在使用

     App.getInstance().resultResponse 

您希望通过您的应用程序。

您可以在响应方法中使用具有返回类型字符串的接口,并在所需的类获取字符串响应中实现此接口。

谢谢,请考虑我想在MainActivity.java中使用响应。我这样写:Webservice.readUrl(this,“);。但是我的方法返回void,所以我不能将它存储在任何变量中。你能告诉我具体应该做什么吗?@Abhishek Jaiswalsry,但是响应在哪里?@Abhishek Jaiswal我想将它存储在一个变量中,比如result。这非常棒,但我想像这样调用getConnection方法:String result=Webservice.getConnection(this,”192.168.1.36”)。这可能吗?@Abhishek JaiswalSince该方法调用webservice您必须使用回调(接口)来实现。请尝试更新的答案