使用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);
}
}
Logcat:http://pastebin.com/2WnnJ9KA
答案 0 :(得分:3)
无法在以下语句中实例化EndlessAdapter类型:
EndlessAdapter adapter = new EndlessAdapter(this);
当然。没有这样的构造函数。文档没有引用这样的构造函数。 demo/
应用不使用此类构造函数。 EndlessAdapter
的代码不包含这样的构造函数。请使用其中一个已定义的构造函数。引用文档:
EndlessAdapter
有两个构造函数。原始的一个以ListAdapter
为参数,表示现有的适配器是无穷无尽的。您的EndlessAdapter
子类需要覆盖此构造函数并向上链。例如,演示项目中的DemoAdapter
将ArrayList<String>
作为构造函数参数,并将其包装在ListAdapter
中以提供给EndlessAdapter
。第二个构造函数带有
Context
和资源ID以及ListAdapter
。这些将用于创建占位符(见下文)。
发布日志猫。
不,你没有。
我可以告诉你问题,就是在manifest.xml中我要添加com.commonsware.cwac.adapter包。这里的问题是,我的主要包是com.litest.main,这是我在manifest.xml中放入的
您的清单中的任何位置都不需要com.commonsware.cwac.adapter
。请参阅GitHub存储库中的demo/
项目。
答案 1 :(得分:0)
发布实际的logcat错误。很可能,您试图在“this”未引用正确的Context
的位置对其进行实例化。您可能需要添加Activity
类的名称,例如new EndlessAdapter(MyActivity.this);