Articles of listadapter

如何异步填充列表视图?

我想知道我应该如何实现一个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 […]

ListView中的ViewPager和OnItemClickListener

我正在创build一个滑动到解散列表视图适配器。 我的基本方法是将列表项的视图作为ViewPager中的第二个视图进行封装,并在ViewPager的项目更改侦听器中提供必要的callback。 通过很多痛苦,我已经使View回收站按预期工作,以及实现了ViewHolder和ViewBinder模式。 我甚至设法让ListView在ViewPager滚动的时候接pipe触摸事件,而不必制作一个ListView的自定义子类(我可以从Adapter中完成)。 我遇到麻烦的地方是让select器和OnItemClickListener工作。 在查看ListView的源代码之后,似乎通过覆盖ViewPager的hasFocusable()方法总是返回false(稍后我将从子视图中提取这个值),应该重新启用这些东西。 不幸的是,这种情况并非如此。 我已经尝试setDecendantFocusability()解决方法,我仍然坚持。 如果可能的话,我想避免扩展ListView,以提供最大的模块性。 由于类似的原因,我不想将select器添加到ViewPager的背景(如果开发人员更改ListView的select器,这将不会被反映)。 基本上,我正在寻求让ViewPager代码在ListView和子View之间透明。 有任何想法吗?

系统服务不可用于onCreate之前的活动?

我无法弄清楚如何解决这个错误。 我对Android和Java非常绿色,所以代码会随着解释而变得非常有帮助。 有任何想法吗? 谢谢。 LogCat: FATAL EXCEPTION: main ERROR/AndroidRuntime(13527): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.xxx/com.xxx.xxx.AC.List_AC}: java.lang.IllegalStateException: System services not available to Activities before onCreate() ERROR/AndroidRuntime(13527): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) ERROR/AndroidRuntime(13527): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) ERROR/AndroidRuntime(13527): at android.app.ActivityThread.access$2300(ActivityThread.java:125) ERROR/AndroidRuntime(13527): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) ERROR/AndroidRuntime(13527): at android.os.Handler.dispatchMessage(Handler.java:99) ERROR/AndroidRuntime(13527): at android.os.Looper.loop(Looper.java:123) ERROR/AndroidRuntime(13527): at android.app.ActivityThread.main(ActivityThread.java:4627) ERROR/AndroidRuntime(13527): at java.lang.reflect.Method.invokeNative(Native Method) ERROR/AndroidRuntime(13527): at java.lang.reflect.Method.invoke(Method.java:521) ERROR/AndroidRuntime(13527): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) […]