Android 如何在listview中保存项目的状态

Android 如何在listview中保存项目的状态,android,Android,我将如何在滚动期间保存listview项目的状态,以便回收者在显示下一行时不使用它。我基本上有一个包含4个文本视图的listview,其中一个文本视图是基于一个条件显示的,该条件来自一个数据库。为了清楚起见,我将把依赖文本视图称为“A” 我的问题是,最简单的情况是:如果仅为列表中的第一个项目或任何其他行显示“A”,而它不显示在其他任何位置,则在滚动时,“A”将显示在不应该显示它的其他行上。我理解listview重用行的概念,但我不知道如何将它保存在一个项目上,因此它不会在另一行中使用。下面是一个

我将如何在滚动期间保存listview项目的状态,以便回收者在显示下一行时不使用它。我基本上有一个包含4个文本视图的listview,其中一个文本视图是基于一个条件显示的,该条件来自一个数据库。为了清楚起见,我将把依赖文本视图称为“A”

我的问题是,最简单的情况是:如果仅为列表中的第一个项目或任何其他行显示“A”,而它不显示在其他任何位置,则在滚动时,“A”将显示在不应该显示它的其他行上。我理解listview重用行的概念,但我不知道如何将它保存在一个项目上,因此它不会在另一行中使用。下面是一个简化的代码,仅包含2个文本视图:

  holder.viewItemName = (TextView)view.findViewById(R.id.nameId);
  holder.viewdescriptionStatus = (TextView)view.findViewById(R.id.viewdescriptionId);

    int namecolumn = c.getColumnIndex(DBAdapter.NAME); 
    String name = c.getString(namecolumn);

    holder.viewItemName.setText(name);

    int description = c.getColumnIndex(DBAdapter.description);
    String descriptionstatus = c.getString(description);


    /*problem am having here*/
    if(description != null){
    holder.viewdescriptionStatus.setText("description available");
        holder.viewdescriptionStatus.setTextColor(Color.BLUE);
    }
正如你所看到的,我使用的是一个viewHolder,但我逐渐意识到viewHolder并不具备逻辑性。我不知道如何保存持有者的状态。viewdescriptionStatus基于该条件。我看到的大多数示例都基于复选框。请任何有想法的人?。。非常感谢

注意:我使用的是bindView()和newView(),因为我使用的是SQLdatabase和SimpleCursorAdapter。我有相同的问题,点击,但我想先解决滚动部分。谢谢您的时间。

试试这个

holder.viewdescriptionStatus.setText(description != null ? "description available" : "");
试试这个

holder.viewdescriptionStatus.setText(description != null ? "description available" : "");

嘿,谢谢,很好用。但请再说一件事,以防下一次,如果我有不同的文本颜色,这会工作吗?viewsdescription.setTextColor(description.equals(“description available”)?Color.BLUE:);viewsdescription.setTextColor(description.equals(“其他”)?Color.RED:);嘿,谢谢,很好用。但请再说一件事,以防下一次,如果我有不同的文本颜色,这会工作吗?viewsdescription.setTextColor(description.equals(“description available”)?Color.BLUE:);viewsdescription.setTextColor(description.equals(“其他”)?Color.RED:);