问题标签 [android-viewbinder]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1133 浏览

android - 无法使用 SimpleAdapter、ViewBinder 和 Asynctask 从 ListView 将图像设置为 ImageView

我有个问题。我正在尝试从在线资源中检索图像并将图像设置为ListView. ImageView但是,我不能这样做,因为我无法在其中链接我ImageView的,ListView因为它返回一个NullPointerException. 我意识到我必须使用VieWBinder将图像设置ImageViewListView.
目前,我正在使用这里ImageLoader的课程以及这里ViewBinder的课程。 这是我的 ViewBinder 类:

SearchResults是一个类,我从中获取了 listData,其中包含图像的 url 等数据。如何使用ImageLoader该类将下载的图像插入到ImageViewusingListViewViewBinder

*旁注:它会给我一个错误“05-12 13:16:37.195: INFO/System.out(736): resolveUri failed on bad bitmap uri: http://lib.syndetics.com/index.aspx? isbn=9780137081851/SC.GIF&client=tpoly&type=xw12 " 以及*

0 投票
1 回答
3695 浏览

android - setViewBinder/setViewValue 和 getView/LayoutInflater 的用法有什么区别?

看起来有两种可能的方法来更改ListView行中的某些内容:

  1. 使用setViewBinder/ setViewValue

    myCursor.setViewBinder(new SimpleCursorAdapter.ViewBinder() {

    /li>
  2. 使用getView/ LayoutInflater

    public View getView(int position, View convertView, ViewGroup parent) {

    /li>

这两种方法有什么区别?

0 投票
2 回答
582 浏览

android - 如何让我的 ListView 项目具有(并保持)不同的背景?

ListView这个问题中,我已经为我的特定项目取得了类似的成就。

但是,现在,我希望用户能够单击项目,这实际上会突出显示用户点击的任何项目。我在我的应用程序中保留了一个被点击项目的列表,并且应该能够ViewBinder在滚动发生时引用它,但是,因为我从来没有调整任何东西来适应LinearLayoutListView本身,我不知道如何获取LinearLayout对象为了正确设置其背景颜色。

我需要能够做到这一点,因为您可能知道,在滚动时,Android 会重新使用列表项,这很好,除非您更改单个列表项的格式(颜色等)。在这种情况下,您最终会得到颜色/格式不正确的列表项。ViewBinder当涉及到我的列表项时,我正在使用 a来解决问题TextViews,但不知道如何为ListView自身的背景做类似的事情。

0 投票
3 回答
12859 浏览

android - SimpleCursorAdapter 中的图像

我正在尝试使用 aSimpleCursorAdapterViewBinder从数据库中获取图像并将其放入我的ListView项目视图中。这是我的代码:

我正进入(状态:

在执行时byte[] byteArr = cursor.getBlob(columnIndex);。有谁知道我做错了什么?

0 投票
2 回答
2951 浏览

android - 如何获取字段值而不是列名?

我想以这种方式用游标中的数据填充列表:

我使用自定义在每行ViewBinder中填充两个TextViews和一个:ImageView

我的问题是cursor.getString()方法调用返回的是列名而不是字段的值,所以我得到了数百行带有列名的行。

更新:

getAllCompanie的 s 包括一个moveToFirst电话,Cursor但我仍然得到列名:

0 投票
1 回答
353 浏览

android - ListView 和记忆数据

我对 a 有一些问题ListView(这更像是一个视觉问题),它会记住来自TextViewsListView行的文本值等数据,但会混淆或忘记有关TextViews背景颜色的方面。仅当ListView包含许多行时才会出现问题。我使用 aSimpleCursorAdapter和 aViewBinder并希望在TextView出现条件时突出显示 a:

ViewBinder实施中:

再说一遍:当有很多行时,ListView似乎会混淆背景颜色。有时当我重新滚动时,它再次改变了TextView' 的背景,我似乎无法找到错误或ListView' 的逻辑。

那么,setViewValue(..)每次在对一行进行充气之前都会调用该方法吗?即使您向上或向下滚动并且不再可见的行再次可见?或者该setViewValue(..)方法仅在初始行膨胀过程中调用,然后创建的对象保存在ListView的内存中?

PS 相同的文本值TextView显示正确。setViewValue(..)我在相同的方法中使用了相同的逻辑。

0 投票
1 回答
136 浏览

android - ViewBinder 中的条件操作

我希望为我的ListView(使用SimpleCursorAdapterwith ViewBinder)禁用一个行项目,但它不起作用:

当我删除else时,它会随机禁用它们,如果if-else存在,则全部启用。到底是怎么回事?

0 投票
2 回答
1281 浏览

android - ListView 的内容占用大量内存

包含相当多的ListView项目(20 个或更多),每个项目都是一个ImageView 带有位图源的项目。这些位图未压缩,大小约为 640x480。刚刚加载时ListView,它会占用一些内存,但如果我滚动它,则"Memory exceed VM budjet"可能会发生错误。当我用另一个片段替换片段时,ListView它仍然挂在内存中。如何清除 ram/ListView 缓存?

更新 :

我将 aSimpleCursorAdapter与 a 一起使用ViewBinder

图像在单独的线程中加载。

0 投票
1 回答
288 浏览

android - 如何更新 ListView 中所有项目的非绑定子视图?

我有一个ListView使用自定义布局的自定义布局,该布局在自定义布局中有 5 个子View对象(4TextView和 1 CheckBox)。但是,只有TextViews绑定 -CheckBox数据库中没有相应的字段。的目的CheckBox只是确定我想在“下一步”中处理哪些正在显示的项目。我正在使用自定义ViewBinder来正确分配文本值(因为数据库中的一些值是日期等)。

用户界面的一部分是三个按钮——“全部”、“无”和“反转”,我用它们来切换列表中每个项目的状态。例如,对于“全部”按钮,我使用以下代码执行此操作(我现在知道这是不正确的 - 我包含它以显示我正在尝试做的事情):

只要列表中的项目数不超过列表大小,这样就可以正常工作,以便所有项目始终可见。但是,当我超过该数字时,“getChildAt”函数有时会返回 null,因为(如果我理解正确的话)它并不意味着返回列表中的所有项目,只返回那些可见的项目,这会导致NullPointerException.

CheckBox即使它们不可见,如何正确设置所有视图?

0 投票
1 回答
2617 浏览

android - ListView 项的 ViewBinder setViewValue 导致选中多个 CheckBoxes

我正在使用ListView具有:

  1. 列表项点击
  2. CheckBox点击

我可以通过 using 保存 cursorPositionview.setTag(cursor.getPosition())并且可以对选中的项目采取必要的操作,但是当我向下滚动时,我会看到其他几个已CheckBoxes选中(仅可视)。作为一种解决方法,我尝试设置视图描述,将CheckedBox视图 ID 保存在列表中,然后迭代以查看是否CheckBox需要显示为已选中。但是当我向下滚动时,视图似乎被重用(相同的视图 ID)。

我怎样才能只显示实际检查CheckBoxes?代码:

用作:

mySimpleCursorAdapter.setViewBinder(myViewBinder);