[英]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.