【问题标题】:Custom ListView : related to paticular item [closed]自定义 ListView:与特定项目相关 [关闭]
【发布时间】:2014-09-23 09:23:21
【问题描述】:

我创建了一个自定义列表视图,其中使用了两个文本视图和一个图像视图(显示列表项是否喜欢)。如果有人选择该项目作为收藏夹,则会出现图像视图,否则不会显示。 SQLite DB 用于存储收藏列表项。并使用此数据库填充列表视图。一切正常,但是当我将列表项标记为收藏项时,该项目列表图像视图将不会出现,但 SQLite DB 会使用此新项目列表进行更新,因此当我重新加载同一页面时,它会显示为收藏项。我该如何解决这个问题?

【问题讨论】:

  • 如果不提供您尝试过的内容/代码,您认为您会得到建议/解决方案吗?
  • 好的...我正在发布我的代码。
  • 我无法发布我的代码,每次它说请写一些上下文来解释代码。

标签: android sqlite listview android-listview


【解决方案1】:

您可能需要提供一些示例代码,但您可以通过 onclick 使项目的视图无效或通过通知适配器更改可能更简单的方法来重新绘制列表视图项。

例如

@Override 
public void onCreate( Bundle savedInstance )
{
    ...
    MyAdapter myAdapter = new MyAdapter( this );
    ListView listView = ( ListView ) findViewById( R.id.list_view );
    listView.setAdapter( myAdapter );

    listView.setOnItemClickListener( new OnItemClickListener()
    {
        @Override 
        public void onItemClick( AdapterView<?> adapter, View listItemView, 
            int position, long id )
        {
           ...
           adapter.notifyDataSetChanged();
           ...
        }
    }
}

这不是一个完美的解决方案,但会给你一个想法。

【讨论】:

  • 好的....谢谢你的回复
  • 上次我在类中只有 getter 函数,所以我创建了用于存储两个字符串字段的 getter 和 setter 类。还有一个布尔变量,用于查找收藏夹或不收藏夹。通过找到该列表项,我可以更新它,因为我只需要更改布尔变量。更新 arraylist 后,我​​调用了 notifyDataSetChanged();由于在不重新加载活动的情况下再次反映了哪个列表。我希望这会有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多