android studio 如何在方法内传递Java方法';s参数或不同的解决方案
我正在使用创建一个移动应用程序。本申请的目的是复制现有网站上使用的流程(出于隐私原因,不能披露网站) 当使用参数为
android studio 如何在方法内传递Java方法';s参数或不同的解决方案,
android-studio,java,android,http,
android Studio,Java,Android,Http,我正在使用创建一个移动应用程序。本申请的目的是复制现有网站上使用的流程(出于隐私原因,不能披露网站) 当使用参数为usr(用户名)和pwd(密码)的请求时,网站当前返回一个JSON对象。例如: www.website.com/checkLogin.php?usr=username&pwd=password 当前工作系统是应用程序主活动类中的一个函数: public void SimpleGetRequest(String url){ // Instantiate the Re
usr
(用户名)和pwd
(密码)的请求时,网站当前返回一个JSON对象。例如:
www.website.com/checkLogin.php?usr=username&pwd=password
当前工作系统是应用程序主活动类中的一个函数:
public void SimpleGetRequest(String url){
// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// display the response for bug testing
Log.d("CREATION", "Response: " + response);
//ChangeText(response);
//Validate the JSON oBject that should be returned
if(ValidateLogin(response)){
// change the temp username and password in globals on static method
setUsernameAndPassword();
// change text to show success
ChangeText("Login Success");
// change ethe activity to the home page on the login screen
ChangeActivity();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
ChangeText("Couldn't Connect to Server");
Log.d("CREATION", "Request Failed");
}
});
// Add the request to the RequestQueue.
queue.add(stringRequest);
}
public void SimpleGetRequest(字符串url){
//实例化RequestQueue。
RequestQueue=Volley.newRequestQueue(this);
//从提供的URL请求字符串响应。
StringRequest StringRequest=新的StringRequest(Request.Method.GET,url,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
//显示错误测试的响应
Log.d(“创建”,“响应:”+响应);
//更改文本(响应);
//验证应返回的JSON对象
if(验证登录(响应)){
//在globals on static方法中更改临时用户名和密码
setUserName和Password();
//更改文本以显示成功
ChangeText(“登录成功”);
//将活动更改为登录屏幕上的主页
改变活动();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
ChangeText(“无法连接到服务器”);
Log.d(“创建”、“请求失败”);
}
});
//将请求添加到RequestQueue。
添加(stringRequest);
}
此方法接受url输入并运行一个简单的请求,然后在它自己内部创建的onResponse()
函数中返回响应。这对我来说很好,但是我想在其他活动中使用此方法,这需要我复制并粘贴到其他活动中。相反,我想创建一个静态类,让活动引用这个方法。但是,由于响应驻留在方法内部的回调函数中,因此我无法使用该方法返回任何内容
我认为可能的解决方案是使用SimpleRequest()
方法从活动传递函数,这样当调用回调函数时,它会将结果发送回活动,这样就可以使用它,而不是将功能直接放入回调函数中
是否可能,或者此方法有缺陷?我不确定您到底想要什么,但似乎您想要使用lambda或方法引用来代替匿名内部类。我说的对吗?是的,本质上我只是希望能够设置一个指向方法的指针,让它运行,以便响应返回到调用请求的活动。这可能会帮助您。这对我的目标没有帮助。我想做的是将这个方法移动到它的on static类,作为一个静态类,我不能用它来调用应用程序的非静态类中的方法,所以我想做的是以某种方式在SimpleRequest(final method())中传递一个方法,然后我可以在内部方法onResponse()中引用该方法将响应发送到中是否可能/是否有其他类似的方法可以工作?