0

在使用EndlessAdapter时,我遇到了这个错误:

无法在以下语句中实例化 EndlessAdapter 类型:

EndlessAdapter adapter = new EndlessAdapter(this); 

我在 EndlessAdapter.java 中定义了一个适配器类并导入了它。

这是我的全部代码:

package com.example.litest;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import com.example.utilities.TestListAdapter;
import com.example.utilities.EndlessAdapter;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;



public class ListActivity extends Activity{
    public final static String ITEM_TITLE = "title";  
    public final static String ITEM_CAPTION = "caption";  

    public Map<String,?> createItem(String title, String caption) {  
        Map<String,String> item = new HashMap<String,String>();  
        item.put(ITEM_TITLE, title);  
        item.put(ITEM_CAPTION, caption);  
        return item;  
    }  

    @Override  
    public void onCreate(Bundle icicle) {  
        super.onCreate(icicle);  

        List<Map<String,?>> security = new LinkedList<Map<String,?>>();  
        security.add(createItem("Remember passwords", "Save usernames and passwords for Web sites"));  
        security.add(createItem("Clear passwords", "Save usernames aznd passwords for Web sites"));  
        security.add(createItem("Show security warnings", "Show warning if there is a problem with a site's security"));  
        for(int n=10; n>0; n--)
            security.add(createItem("Clear passwords", "Save usernames and passwords for Web sites"));  

        // create our list and custom adapter  
        EndlessAdapter adapter = new EndlessAdapter(this) 


        //adapter.addSection("Security", new EndlessAdapter(this, security, R.layout.list_complex,new String[] { ITEM_TITLE, ITEM_CAPTION }, new int[] { R.id.list_complex_title, R.id.list_complex_caption }));  

        ListView list = new ListView(this);  
        list.setAdapter(adapter);  
        this.setContentView(list);  

    }  

}  

日志猫: http ://pastebin.com/2WnnJ9KA

4

2 回答 2

3

无法在以下语句中实例化 EndlessAdapter 类型:

EndlessAdapter adapter = new EndlessAdapter(this); 

当然。没有这样的构造函数。该文档没有引用这样的构造函数。该demo/应用程序不使用这样的构造函数。的代码EndlessAdapter不包含这样的构造函数。请使用定义的构造函数之一。引用文档:

EndlessAdapter有两个构造函数。原来的以aListAdapter为参数,表示现有的adapter要制作成无穷无尽的。您的EndlessAdapter子类将需要覆盖此构造函数并向上链接。例如,DemoAdapter演示项目内部将 anArrayList<String>作为构造函数参数,并将其包装在 aListAdapter中以提供给EndlessAdapter.

第二个构造函数接受一个Context和资源 ID 以及ListAdapter. 这些将用于创建占位符(见下文)。


贴了日志猫。

不,你没有。

我可以告诉你问题,那就是在 manifest.xml 我必须添加 com.commonsware.cwac.adapter 包。这里的问题是,我的主包是 com.litest.main,这是我放在 manifest.xml 中的

您不需要com.commonsware.cwac.adapter在清单中包含任何位置。请参阅demo/GitHub 存储库中的项目。

于 2012-01-12T12:20:44.160 回答
0

发布实际的 logcat 错误。很可能,您正试图在“this”不指代正确的Context. 您可能需要添加Activity班级的名称,例如new EndlessAdapter(MyActivity.this);

于 2012-01-12T04:20:50.807 回答