java - 我应该如何将变量传递给另一个类?

标签 java android

我已经声明了一个名为 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);
        }
    }
}   

enter image description here **如何使我可以传递这个 paramparameterForURL 变量,以便我可以获得我想要的输出 **

最佳答案

问题是您正在执行 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/

相关文章:

java - Java中实例化对象的不同方式之间的区别

java - 在Java中,如何在所有实例中将字符串中多个位置出现的符号替换为另一个符号?

java - 如何让 Firebase 数据可供公众阅读?

java - Hibernate错误: org. xml.sax.SAXParseException:必须声明元素类型 "hibernate-mapping"

android - 如何为 firebase 数据库子项声明字符串值

android - 为什么在 ListFragment 中调用 setListAdapter 后我的 ListView 为空?

java - android 是否有 firebase 使用的 <defaultsMap> xml 标签?

android - 如何在自定义 ListActivity 布局中更改 ImageView 资源?

java - 找不到主类

android - C/C++ 与 Android Studio 版本 2.2