Articles of android arrayadapter

Android – ListView在到达时加载更多项目

我已经成功实现了一个listView,其中每一行都是我创建的对象。 我有一个接口读取一些对象并返回它们的数组,我将其传递给适配器构造函数。 我想要做的是,因为列表可能很长,我的界面允许每次读取更多的项目(第0页,第1页……)所以我想,当用户到达列表的最后一行时,加载下一页并将其插入listView。 这样做的正确方法是什么? 我实际上希望“到达列表末尾”触发回调,我可以请求更多页面并将它们加载到列表中。 我的主要问题有点OT,但我不介意使用baseAdapter,两者都可以工作,我只是不知道什么对任务更好。

ArrayAdapter使用Kotlin android

对不起我的英语不好。 我学习kotlin,现在我需要编写ArrayAdapter,但是当我尝试这样做时我有一些错误convertView = vi.inflate(resource, null) kotlin说我Val cannot be reassigned 。 在网站kotline我将java类转换为kotlin类,并尝试在此站点中做。 为什么我有错误,我怎么能解决这个问题? open class MyAdapter(context: Context, resource: Int, list: ArrayList) : ArrayAdapter(context, resource, list) { var resource: Int var list: ArrayList var vi: LayoutInflater init { this.resource = resource this.list = list this.vi = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater } override fun getView(position: Int, convertView: View?, parent: […]

在android中扩展ArrayAdapter

我需要从类ArrayAdapter覆盖一个getFilter()方法,我在github中find了这里的源代码 //package name import java.util.ArrayList; import java.util.Arrays; import java.util.List; import android.content.Context; import android.util.Log; import android.widget.ArrayAdapter; import android.widget.Filter; import android.widget.Filterable; public class CustomAdapter extends ArrayAdapter implements Filterable{ private ArrayList mOriginalValues; private List mObjects; private CustomFilter mFilter; private final Object mLock = new Object(); public CustomAdapter(Context context, int textViewResourceId, T[] objects) { super(context, textViewResourceId, objects); mObjects = […]

在ArrayAdapter和SimpleAdapter之间进行选择

我想知道,有没有任何指导方针,我们如何在ArrayAdapter和SimpleAdapter之间SimpleAdapter选择。 对于每个列表项,它们将由几个TextViews和Views呈现,这些布局非常好。 通过使用ArrayAdapter或SimpleAdapter ,我意识到我可以毫无问题地实现它们。 关于我们如何选择它们,有没有指导方针? 我的猜测是 ArrayAdapter使我们能够动态添加新项目,即使在此期间显示列表之后也是如此。 请注意, ArrayAdapter正在add方法。 SimpleAdapter用于大小写,一旦显示列表,就不SimpleAdapter添加新项目了。 这是我们应该遵循的准则吗?

(单位)ArrayAdapter的测试

我在我的应用程序中广泛使用ArrayAdapter ,因为大多数活动都持有ListView ,我需要一些自定义内容。 我看了一下android开发者文档中的测试类,但是找不到一些例子或一个合适的测试类…… 1)Android中是否有(单元)测试ArrayAdapter最佳实践? 2)我可以选择错误的方法(使用适配器)并以这种方式杀死可测试性吗?

具有自定义行布局的ListView – Android

我想创建一个包含列表的Activity ,其中行具有自定义布局。 所以我创建了list_entry_layout.xml文件,定义了列表中每一行应该具有的布局(在我的示例中,每行应该有一个标题和摘要): 我的问题是我不知道如何将数据添加到ListActivity类中的每一行。 使用以下代码片段,我可以添加每行的标题: public class MyActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list_activity); ListView listView = (ListView) findViewById(android.R.id.list); String[] values = new String[] { “Android”, “iPhone”, “WindowsMobile”, “Blackberry”, “WebOS”, “Ubuntu”, “Windows7”, “Max OS X”, “Linux”, “OS/2” }; ArrayAdapter titleAdapter = new ArrayAdapter(this, R.layout.list_entry_layout, R.id.list_entry_title, values); // Assign adapter to […]

v.getTag()返回null而不是ViewHolder

我有一个定制的适配器,具有标头和自定义行。 有时候我的v.getTag()会在我存储ViewHolder的地方返回null。 它不会一直发生,我无法弄清楚它何时以及为什么会诅咒。 @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; //Header if(items.hasDescription() && 0 == position) { LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.app_list_header, null); ((TextView) v.findViewById(R.id.app_list_header_description_text)).setText(items.getDescription()); return v; } ViewHolder holder; // Inflate app view. if (v == null || v.getTag() == null) { LayoutInflater vi […]

ArrayAdapter的getView()方法的说明

你能解释一下ArrayAdapter的getView()方法吗? 我阅读了文档,它有三个参数: position :项目在我们想要的视图的项目的适配器数据集中的位置。 convertView :如果可能的话,重用旧视图。 注意:在使用之前,您应该检查此视图是否为非null且具有适当的types。 如果无法转换此视图以显示正确的数据,则此方法可以创建新视图。 异构列表可以指定其视图types的数量,以便此View始终是正确的types(请参阅getViewTypeCount()和getItemViewType(int))。 parent :此视图最终将附加到的父级 我理解position参数。 就像他们说的那样,这意味着该项目的位置,已经请求了视图。 convertView来自哪里。 我见过很多例子,他们检查convertView是否为null。 如果is为null,则会为行布局的新实例充气,填充并返回它。 我想我也已经知道了这一点,但还有一件事让我感到困惑。 通过convertViewparameter passing的布局是什么。 是否在初始化ArrayAdapter时传入的resource参数 ? 是getView()返回的最后一个布局的缓存副本? 最后。 parent参数的作用是什么。 我没有看到太多利用它的例子。 他们中的大多数只是重复/膨胀行布局并返回它。 (我问,因为我的ListView有一个点击animation。特别是这个旨在复制Spotify的下拉快速操作菜单 。我的animation有点迟钝。在诊断了这个问题一段时间之后,我意识到这是因为我的getView()方法需要花费一些时间才能完成,因为我在每次迭代中都在为一个新的行布局进行膨胀。有人建议在ViewHolder缓存行布局,而其他示例则指向重用convertView参数,即如果convertView为null,则仅对行布局进行膨胀。)

onItemClickListener未在自定义ArrayAdapter上触发

我有一个Activity ,它从Web服务中检索数据。 这个数据通过ArrayAdapter在ListView显示,它通过内部三个TextViews对RelativeLayout进行膨胀,没什么特别的,它可以正常工作。 现在我想实现一个Details Activity ,当用户点击ListView中的一个项目时应该调用它,听起来很简单,但我不能在我的生活中让onItemClickListener在我的ArrayAdapter上工作。 这是我的主要Activity : public class Schema extends Activity { private ArrayList lessons = new ArrayList(); private static final String TAG = “Schema”; ListView lstLessons; Integer lessonId; // called when the activity is first created. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // can we use the custom titlebar? requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); // […]

如何在ArrayAdapter的列表开头添加对象?

ArrayAdapter具有方法add(T object) ,它在列表的末尾添加一个对象。 有没有办法在列表的开头添加对象?