我能够在编码Base ArrayAdapter时传递String [],如下所示:
private static String[] myStringArray = {"a","b","c"};
ArrayAdapter<String> itemsAdapter =
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myStringArray);
ListView lv = (ListView)findViewById(R.id.myListView);
lv.setAdapter(itemsAdapter);
但是我需要帮助来使用自定义适配器做同样的事情,我在(this,myStringArray)
下得到了波浪形的红色下划线 MyAdapter myAdapter = new MyAdapter(this, myStringArray);
ListView view = (ListView) findViewById(R.id.myListView);
view.setAdapter(myAdapter);
即使我尝试将String []转换为像这样的ArrayList,它仍然会失败:
List<String> myNewStringArray = Arrays.asList(mystringArray);
我的自定义适配器如下所示:
public class MyAdapter extends ArrayAdapter<String>{
public MyAdapter(Context context, ArrayList<String> categories){
super(context, 0, categories);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {...
谢谢
答案 0 :(得分:0)
没有你创建的这样的构造函数 - 看there at android documentation。你应该提供构造函数
public MyAdapter(Context context, int resource, ArrayList<String> categories){
super(context, resource, categories);
}
并通过MyAdapter myAdapter = new MyAdapter(this, android.R.layout.simple_list_item_1, myStringArray);
进行调用。 NullPointerException
可能因为没有id == 0
的布局而抛出,而ArrayAdapter会查找单个列表元素的布局。
答案 1 :(得分:0)
问题是在setContentView方法中声明的布局文件中引用ListView(获取不存在的ListView)的错误引用。
谢谢