0

こんにちは、ListView にいくつかの通知を表示するために、この SimpleAdapter があります。これらの通知はArrayListローカリストにあります。コードは次のとおりです。

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);

ここで 3 つのエラーが表示されます。最初のエラーは localist にあり、「localist を変数に解決できません」と表示されます。

2番目と3番目は

lv.setAdapter(adapter);

1つは「トークンの構文エラー、コンストラクトの配置が間違っています」というドットにあり、もう1つは「トークン「アダプター」の構文エラー、このトークンの後にVariableDeclaratorIdが必要です」という括弧内のアダプターにあります。2番目と3番目のエラーは、最初のエラーが原因で発生したと思います。これを解決する方法はありますか?

編集:ローカリストは他のアクティビティで宣言および作成されます。コードは次のとおりです:

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);

        }
4

1 に答える 1

2

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().

于 2013-09-26T23:10:40.043 に答える