2014-09-23 60 views
-1

我已经创建了一个自定义列表视图,其中使用了两个文本视图和一个图像视图(显示列表项最喜欢与否)。如果有人选择该项目作为收藏夹,则图像视图将出现,否则将不显示。 SQLite数据库用于存储收藏夹列表项目。并且使用这个DB列表视图被填充。所有工作正常,但是当我将列表项目标记为突然出现在该项目列表中的图片视图时,将不会显示该列表项目,但SQLite数据库将使用此新项目列表进行更新,以便当我重新加载同一页面时,它将显示为收藏项目。我怎样才能解决这个问题?自定义列表视图:与特定项目相关

+0

没有提供你尝试过/代码,你认为你会得到建议/解决方案? – 2014-09-23 09:58:16

+0

好的...我张贴我的代码。 – 2014-09-23 10:03:05

+0

每次它说我都不能发布我的代码,请写一些上下文来解释代码。 – 2014-09-23 10:32:55

回答

1

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

例如

@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(); 
      ... 
     } 
    } 
} 

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

+0

好的....感谢你的回复 – 2014-09-23 09:42:51

+0

上次我在类中只有getter函数,以便创建getter和setter类,它用于存储两个字符串字段。还有一个用于查找最喜欢或不喜欢的布尔变量。通过查找列表项,我可以更新它,因为我只需要更改布尔变量。更新arraylist后,我调用notifyDataSetChanged();由于哪个列表再次被反映而没有重新加载活动。我希望这会有所帮助。 – 2015-02-04 11:29:41