2015-09-15 68 views
0

我正在关注以下tutorial。我正在学习如何使用/创建自定义适配器。在下面的代码中,超级构造函数让我有点困惑。CustomArrayAdapter中的超级构造函数

public class UsersAdapter extends ArrayAdapter<User> { 
    public UsersAdapter(Context context, ArrayList<User> users) { 
     super(context, 0, users); 
     } 
    ...... 
} 

当我使用简单ArrayAdapterArrayAdapter构造函数采用3个PARAMATERS:contextresourcelist

ArrayAdapter<string> myArrayAdapter= new ArrayAdapter<string>(this,Android.Resource.Layout.SimpleItem1, myList) 

以下超级构造还需要3个PARAMATERS,但令人困惑的部分是为0是什么0表示在下面的超级构造的第二个参数?

super(context, 0, users); 
+1

这里零代表包含实例化视图时使用的布局的布局文件的资源ID – Shriram

+0

好吧我知道这是资源ID,但我想知道什么0代表?任何参考?例如,如果我把1,那么它是否有意义? – hotspring

+1

在本教程的情况下与其他任何int都一样好,因为当调用getView时inflater发生,并且教程未调用super.getView,值将被忽略 – Blackbelt

回答

1

这是适配器实例化视图时包含布局的布局文件的资源ID。为什么不先阅读文档?

+0

好吧,我明白这是资源ID,但我想知道什么0代表?任何参考?例如,如果我把1,那么是指什么? – hotspring

+0

0表示默认值。这就像告诉适配器:“我不给你我的布局的res ID,因为我会自己处理它(或类似的东西)” – Mike

+0

感谢迈克,这是我需要知道的。有没有图表/文件?例如,我可以通过1吗? – hotspring