Articles of listadapter

为什么适配器中的getCount被调用了这么多次?

我有一个自定义列表,只需几分钟即可显示。 当我试图检查问题的位置时,我看到即使我在列表中只有1个项目,方法getCount()被调用5次,getVIew()被调用一次,然后getCount()是被召唤更多时间。 整体getCount()被调用7次。 这有道理吗? 谢谢!

如何根据其他微调器在两个不同活动中的位置来改变微调器的位置

我在两个不同的活动中有两个android spinner下拉列表。但是两个微调器都有来自同一个sourec的相同数据。我想根据第一个活动的位置改变第二个Activity的位置。如何解决这个问题? 更新的代码: 第一项活动: public class ServiceRequest extends BaseActivity implements OnItemClickListener { private List customerList = new ArrayList(); private SpinnerAdapter adapter; public static final String EXTRA_INTENT_CUSTOMER_LIST =”extra_intent_customer_list”; public static final String EXTRA_INTENT_SELECTED_ITEM = “extra_intent_selected_item”; private List items; Spinner spin; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getLayoutInflater().inflate(R.layout.service_request, frameLayout); ; ); System.out.println(“Selected item ” Button login = […]

如何异步填充列表视图?

我想知道我应该如何实现一个ListAdapter ,将其视图异步加载到ListView ? 我想这样做,因为我用我的数据库中的信息填充列表,这使得我的活动有时加载有点慢。

如何使用适用于Android的MVP模式控制ListView

我目前正在使用MVP Pattern开发一个Android应用程序。 当我尝试开发一个Activity时,我应该使用ListView。 所以我正在使用Adapter for ListView。 但我听说适配器类似于MVP模式上的Presenter。 我想如果Apdater对Presenter很熟悉,那么我应该让Presenter更新ListView而不是Adapter。 遇到这种情况时,如何开发ListView? 只需使用适配器并继续使用MVP模式? 谢谢你的阅读。

如何管理android微调器项的高度?

我有一个android微调器,它由一个使用ArrayAdapter的字符串列表填充,并且运行正常,但是由于微调器的显示方式,我遇到列表项的显示高度问题。 乍一看,似乎ArrayAdapter可以使用单一布局来显示导致我遇到的问题的选项。 在微调器中显示当前项目时(当用户没有从列表中选择新项目时),微调器会填充文本,以便微调器的大小合理。 然而,当用户点击它并调出列表以选择新项目时,所呈现的列表项目在高度方面是小的。 如果我使用一个项目布局将列表项目显示在合理的高度,那么由于它自己填充列表项目,微调器本身变得过于庞大。 关于如何管理这两个项目显示模式的高度的任何想法,以便它们有效地显示相同的高度值而不是微调器高度大于列表项目显示高度?

图像适配器泄漏内存

我有一个简单的ListActivity来显示图像,我在ImageAdapter类的构造函数中为Picasso Builder提供了我的OkHttpClient: picassoClient = new OkHttpClient(); picassoClient.interceptors().add(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Request newRequest = chain .request() .newBuilder() .addHeader(“Cookie”,”xyz”) .build(); return chain.proceed(newRequest); } }); new Picasso.Builder(context).downloader(new OkHttpDownloader(picassoClient)).build(); 然后在getView()使用Picasso在ImageView中加载图像: Picasso.with(context).load(xyzUrl).fit().centerCrop().into(vImage); 它工作得很好,但是在设备的旋转上,我看到堆大小有时会慢慢增长,有时很快,有时会保持稳定。 它很少掉落。 我泄漏内存还是代码有问题? 编辑:我在getView()调用Picasso后插入此代码 if (BuildConfig.DEBUG) { Log.i(“HEAP SIZE”, String.valueOf((Runtime.getRuntime().totalMemory() / 1024) – (Runtime.getRuntime().freeMemory() / 1024))); } 我发现在将位图加载到ImageView之后,堆大小的增长发生在getView() 。 哪里不对? 编辑2 […]

listPreference中的自定义行?

我正在尝试创建一个ListPreference但不知何故禁用其中一个项目。 有点像灰色或其他东西,没有能力选择它。 这将是一个即将推出的function,我希望它在列表中不可选择。 我已经创建了一个自定义ListPreference类,并在该类中创建了一个自定义适配器,希望使用该适配器来创建我想要的东西。 代码工作,它设置适配器,但没有调用任何适配器函数。 我在方法上设置断点,例如getCount()但它们永远不会被调用。 这是我的代码。 自定义ListPreference取自http://blog.350nice.com/wp/archives/240 import android.content.Context; import android.content.DialogInterface; import android.graphics.Color; import android.preference.ListPreference; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.app.AlertDialog.Builder; public class CustomListPreference extends ListPreference { private boolean[] mClickedDialogEntryIndices; CustomListPreferenceAdapter customListPreferenceAdapter = null; Context mContext; public CustomListPreference(Context context, AttributeSet attrs) { super(context, attrs); mContext = context; mClickedDialogEntryIndices = new […]

Android Endless列表内存管理

我正在通过在onScrollStateChanged(…)方法中向arraylist加载更多项来实现无限的listview。 如果我实现这个方案来获取超过一百万个条目,我将有一百万个对象添加到arraylist,这是内存密集型的。 我可以使用哪些方案进行有效的内存管理? PS:问题是关于可以放入适配器的项目数量。 编辑: 更多细节: 数据来源是互联网。 我必须从Internet获取数据并将其放入listview适配器。

是否有一个超级简单的List / ListAdapter示例为android

我有一个Web服务,返回一个超级简单的对象列表 MyObject [] data = webServiceCall(); MyObject有1个我要显示的字段, “Name” (即data[0].Name ) 如何将其转换为活动,在Android上的可滚动listActivity中仅列出这些对象的名称。 我对Cursors非常困惑,我不确定是否需要游标,我不确定要实现什么样的适配器( BaseAdapter , SimpleAdapter等) 所以我想我正在寻找三件事, 活动,适配器和layout.xml 只是试图想出这个机器人的东西,绝对是这里的菜鸟

使用ListAdapter时ArrayIndexOutOfBoundsException

我正在为ListView使用自定义ListAdapter 。 我不动态地改变任何东西(查看计数,视图types,启用/禁用,我读了其他post,但他们从代码中改变了一些东西)。 我必须执行以下操作来触发exception。 向下滚动到列表底部,然后再向上滚动。 在向上滚动animation的开头,我得到了这个例外。 04-14 09:41:43.907: ERROR/AndroidRuntime(400): FATAL EXCEPTION: main 04-14 09:41:43.907: ERROR/AndroidRuntime(400): java.lang.ArrayIndexOutOfBoundsException 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:4540) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.widget.AbsListView.trackMotionScroll(AbsListView.java:3370) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.widget.AbsListView.onTouchEvent(AbsListView.java:2233) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.widget.ListView.onTouchEvent(ListView.java:3446) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.view.View.dispatchTouchEvent(View.java:3885) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:903) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942) 04-14 09:41:43.907: ERROR/AndroidRuntime(400): at […]