繁体   English   中英

我需要在AsyncTask执行中传递变量,但无法弄清楚该怎么做

[英]I need to pass a variable in AsyncTask execute but can't figure out how to do it

我有一个AsyncTask,从我可以知道我传递的eventId错误,因为在日志中它显示为“ Ljava.lang.String; @ 423e4370”

AsyncTask是:

    private class CallCategoryList extends AsyncTask<String, Void, String> {

        protected String doInBackground(String... eventId) {
            return readCategoryJSONFeed("http://webservice/service/category_list.php",  eventId.toString());
        }
...
}

我称其为:

new CallCategoryList().execute(fv);

fv是通过调用从类返回它的函数获得的

public String getEventByName(List<Event> eventList, String eventName) {
    for (Event event : eventList) {
        if (event.getEventName().equals(eventName)) {
            return event.getId();
        }
    }
    return null;
}

这方面的其他问题建议创建另一个类来保存变量。 有没有简单的方法可以通过execute传递此变量?

结构“ String ... eventId”只是“ String [] eventId”的快捷方式。 因此,您应该使用eventId [0]或Arrays.toString(eventId)或适用于您的逻辑的东西。

在您的情况下,使用单个String参数进行调用:

new CallCategoryList().execute(fv);

与静默数组创建相同:

new CallCategoryList().execute(new String[] { fv });

尝试在Google上搜索“ java vararg”或查看官方文档

暂无
暂无

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

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