繁体   English   中英

AsyncTask错误ANDROID

[英]AsyncTask error ANDROID

我正在尝试为方法实现asynctask,但遇到错误。 我不知道问题出在哪里或我做错了什么。

下面是我的代码

class abc extends AsyncTask<String, String, String> {
    protected String doInBackground(String... message) {
        Bundle parameters = new Bundle();
        parameters.putString("message", message);
        parameters.putString("description", "topic share");
        try {
            facebook.request("me");
            String response = facebook.request("me/feed", parameters, "POST");
            Log.d("Tests", "got response: " + response);
            if (response == null || response.equals("")
                    || response.equals("false")) {
                showToast("Blank response.");
            } else {
                showToast("Message posted to your facebook wall!");
            }
            finish();
        } catch (Exception e) {
            showToast("Failed to post to wall!");
            e.printStackTrace();
            finish();
        }
        return null;
    }
}

这是我出错的部分

parameters.putString("message", message);

错误说: Bundle类型中的方法putString(String,String)不适用于参数(String,String [])

问题是这个

字符串...是一种数据类型,它接受一组字符串。 因此,您不能将其类型转换为String。

我了解您的问题,最简单的解决方法是

更改

parameters.putString("message", message);

parameters.putString("message", message[0]);

因此,这将采用传递给asynctask的第一个字符串。

如果您有任何疑问,请告诉我。

该错误表明您正在尝试使用错误的参数类型调用方法。 该方法期望将String作为第二个参数,但是您正在使用String[] (String数组)。

在这种情况下,此错误的解决方案非常简单,因为Android API提供了String[]的方法。 只需更换

parameters.putString("message", message);

parameters.putStringArray("message", message);

因为只希望第一个元素使用此代码。 它检查数组的长度,以避免ArrayOutOfBoundsException

if (message.length > 0) {
    parameters.putString("message", message[0]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM