我已经声明了一个名为 public static String parameterForURL 的变量,我需要将其传递给 SendRequest
类,这样整个 URL 就会像
网址= http://www.eurekabd.com/shakil/home.php/?+shaki,123 .
但是服务器正在接收 /shakil/shakil.php/?[Ljava.lang.String;@ce6cdf7
public static String parameterForURL = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
parameterForURL ="shakil,123";
doorOpenButtonActionClass.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new SendRequest().execute();
resultContainer="";
}
});
}
public class SendRequest extends AsyncTask<String, Void, String> {
protected String doInBackground(String[] paramparameterForURL) {
Log.v("Passed=",paramparameterForURL.toString());
try{
Log.v("Passed=",paramparameterForURL.toString());
//String serv_url="http://www.eurekabd.com/shakil/home.php"+paramparameterForURL.toString();
serv_url="http://192.168.0.109/shakil/shakil.php/?"+paramparameterForURL;
//serv_url += paramparameterForURL;
Log.e("Server Url",serv_url.toString());
URL url = new URL(serv_url);
}
}
}
最佳答案
问题是您正在执行 paramparameterForURL.toString()
。因为 paramparameterForURL
是一个字符串 array,它的 toString
方法不会返回它的内容,而是返回一个标识符,如 [Ljava.lang.String; @ce6cdf7
。那是类名、@ 符号,然后是对象的哈希码。因此服务器会收到
/shakil/shakil.php/?[Ljava.lang.String;@ce6cdf7
你想要做的是类似下面的事情
public static String parameterForURL = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
parameterForURL ="shakil,123";
doorOpenButtonActionClass.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new SendRequest().execute(parameterForURL);
resultContainer="";
}
});
}
public class SendRequest extends AsyncTask<String, Void, String> {
protected String doInBackground(String[] paramparameterForURL) {
Log.v("Passed=",paramparameterForURL[0].toString());
try{
Log.v("Passed=",paramparameterForURL[0].toString());
//String serv_url="http://www.eurekabd.com/shakil/home.php"+paramparameterForURL[0].toString();
serv_url="http://192.168.0.109/shakil/shakil.php/?"+paramparameterForURL[0];
//serv_url += paramparameterForURL;
Log.e("Server Url",serv_url.toString());
URL url = new URL(serv_url);
您将 parameterForURL
作为参数传递给 AsyncTask,然后在异步任务中您将获得数组的第一项,因为您只指定了一个参数。
关于java - 我应该如何将变量传递给另一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47338114/