Android:SimpleAdapter error

强颜欢笑 提交于 2019-12-12 01:24:54

问题


Hello i have this SimpleAdapter in order to display some notifications in a ListView.These notifications are in ArrayList localist. here is the code:

SimpleAdapter adapter = new SimpleAdapter(this,localist, R.layout.rss_list_item,new String[] {"title","pubDate"},new int[] {R.id.title, R.id.pubDate });
    final ListView lv = (ListView) findViewById(android.R.id.list);
    lv.setAdapter(adapter);

The thing is that it shows me three errors here.The first one is at localist and says"localist cannot be resolved to a variable".

The second and the third one are at

lv.setAdapter(adapter);

one at the dot that says "Syntax error on token(s), misplaced construct(s)" and the other at the adapter inside the parenthesis that says "Syntax error on token "adapter", VariableDeclaratorId expected after this token". I thing the second and the third error are caused because of the first error. Do you have any ideas how to solve this?Thans a lot in advance!

EDIT: the localist is declared and created in other activity here is the code:

protected Integer doInBackground(Void... params) {
        ArrayList<HashMap<String, String>> localist = new ArrayList<HashMap<String, String>>();
        String xml = ParseXMLmethods.getXML();
        Document doc = ParseXMLmethods.XMLfromString(xml);
        if (doc != null) {
        NodeList children = doc.getElementsByTagName("item");
        ZERO_FLAG = false;
        if (children.getLength() == 0) {
        ZERO_FLAG = true;
        publishProgress();
        }
        for (int i = 0; i < children.getLength(); i++) {
        HashMap<String, String> map = new HashMap<String, String>();
        Element e = (Element) children.item(i);
        map.put("title", ParseXMLmethods.getValue(e, "title"));
        map.put("pubDate", ParseXMLmethods.getValue(e, "pubDate"));
        map.put("link", ParseXMLmethods.getValue(e, "link"));
        map.put("description",ParseXMLmethods.getValue(e, "description"));
        localist.add(map);

        }

回答1:


From your comments, I think I see what's going on. It looks like your Asynctask is in a separate file than your Adapter. There are several ways to fix this. One would be to use an interface to set the variable in your Adapter once your task has finished.

See this answer for creating an interface for an AsyncTask.

A simpler way would be to make your AsyncTask an inner class of where your Adapter is and make localist a member variable of that class so that both have access to it. Then you could set your Adapter and your ListView in onPostExecute().



来源:https://stackoverflow.com/questions/19039868/androidsimpleadapter-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!