Articles of android arrayadapter

(单元)ArrayAdapter的testing

我在我的应用程序中广泛使用ArrayAdapter ,因为大多数活动都持有一个ListView ,我需要一些自定义的东西。 我看了一下在android开发人员文档中的testing类,但无法find一些例子或正确的testing类… 1)有什么最佳做法(单位)在Android中testingArrayAdapter ? 2)我可以select错误的方法(使用适配器)并以这种方式杀死可testing性吗?

在android中扩展ArrayAdapter

我需要从类ArrayAdapter覆盖getFilter()方法,我发现在这里的源代码在github //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<T> extends ArrayAdapter<T> implements Filterable{ private ArrayList<T> mOriginalValues; private List<T> mObjects; private CustomFilter mFilter; private final Object mLock = new Object(); public CustomAdapter(Context context, int textViewResourceId, T[] objects) { super(context, textViewResourceId, objects); mObjects = […]

arrayAdapter只返回一个位置,Android

我将arrayList设置为12项,但是arrayAdapter只返回屏幕上的一个项目,为什么? 它应该显示在列表中的12个项目。 public class MainActivity extends Activity { ArrayList<CheckBoxInfo> cfo = new ArrayList<CheckBoxInfo>(); CheckBoxInfo cbr; private ListAdapter MyAdapter; ListView listview; MyAdapter myAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cbr = new CheckBoxInfo(); cbr.checkBoxName = "dfdjklfjdkljf"; cbr.checkBoxState = true; for(int i = 0; i <12; i++){ cfo.add(cbr); } Toast.makeText(MainActivity.this, "size: " + cfo.size(), Toast.LENGTH_SHORT).show(); […]

ListView中重复的条目

我在ListView中获得重复的项目。 往回滚动有时会改变项目顺序。 我GOOGLE了,发现许multithreading报告这个错误,但没有一个帮助我解决我的问题。 这是我的代码: 活动: package com.github.progval.SeenDroid; import java.util.ArrayList; import java.util.List; import com.github.progval.SeenDroid.lib.Connection; import com.github.progval.SeenDroid.lib.Message; import com.github.progval.SeenDroid.lib.MessageFetcher; import com.github.progval.SeenDroid.lib.Query.ParserException; import android.app.Activity; import android.app.ListActivity; import android.content.SharedPreferences; import android.os.Bundle; public class ShowUserActivity extends ListActivity { private Connection connection; public ArrayList<Message> listMessages = new ArrayList<Message>(); public MessageAdapter adapter; /** Called when the activity is first created. */ @Override […]

android.R.layout.simple_spinner_dropdown_item和android.R.layout.simple_spinner_item之间的区别

以下是在android中使用微调的示例代码: Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.gender_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); 我明白,我们需要指定适配器中的数据行布局 但为什么再次使用setDropDownViewResource()方法。 我的意思是这个函数做什么,并告诉我它是如何不同的ArrayAdapter的构造函数。 我已经通过了文档,但没有完全理解。

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

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

ArrayAdapter的getView()方法的解释

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

在ArrayAdapter和SimpleAdapter之间进行select

我想知道,是否有任何指导,我们如何selectArrayAdapter和SimpleAdapter 。 对于每个列表项,它们将由几个TextViews和Views来呈现,这些布局很好。 我意识到我可以通过使用ArrayAdapter或SimpleAdapter来实现这两个没有任何问题。 有没有什么指导方针,我们如何select呢? 我的猜测是 ArrayAdapter使我们能够dynamic添加新项目,即使在此期间显示列表之后。 请注意, ArrayAdapter正在add方法。 SimpleAdapter用于大小写,一旦显示列表,就不会再添加新的项目。 这是我们应该遵循的准则吗?

onItemClickListener不会触发自定义的ArrayAdapter

我有一个Activity ,从Web服务检索数据。 这个数据通过一个ArrayAdapter呈现在一个ListView ,这个ArrayAdapter里面有三个TextViews来扩大RelativeLayout ,没有什么特别的,它可以正常工作。 现在我想实现一个细节Activity ,应该在用户点击ListView中的一个项目时调用,听起来很简单,但是我不能让我的生活中的onItemClickListener工作在我的ArrayAdapter上。 这是我的主要Activity : public class Schema extends Activity { private ArrayList<Lesson> lessons = new ArrayList<Lesson>(); 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); […]

ListView与自定义的行布局 – Android

我想创build一个Activity其中包含一个列表,其中行具有自定义布局。 所以我创build了list_entry_layout.xml文件来定义列表的每一行应该有的布局(在我的例子中,每行应该有一个标题和一个摘要): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/list_entry_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="20dp" > </TextView> <TextView android:id="@+id/list_entry_summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="10dp" > </TextView> </LinearLayout> 我的问题是,我不知道如何将数据添加到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", […]