2010-11-09 75 views
1

如何在滚动期间保存一个listview项目的状态,以便当显示下一行时回收站不使用它。我基本上有一个4视图的列表视图,其中一个textview是基于从数据库派生的条件显示的。为了清楚起见,我将调用依赖文本视图“A”。如何在一个列表视图中保存一个项目的状态android

我的问题是,最简单的情况是:如果仅显示第一个项目或列表中的任何其他行的“A”,并且其他任何地方都不显示“A”,则在滚动时,“A”显示在其他行上不应该有它。我理解重复使用行的列表视图的概念,但我无法弄清楚如何将它保存在一个项目上,所以它不会在另一行中使用。下面是一个简单的代码只有2的TextView:

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不成立的逻辑。我不知道如何保存holder.viewdescriptionStatus基于该条件的状态。我所看到的大多数例子都基于复选框。请任何人有想法?..它将非常感激。

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

回答

1

试试这个

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

嘿感谢,它工作得很好。但请多一件事,以防下一次,如果我有不同的文字颜色,这项工作? viewdescription.setTextColor(description.equals(“description available”)?Color.BLUE:“”); viewdescription.setTextColor(description.equals(“something else”)?Color.RED:“”); – irobotxxx 2010-11-09 11:34:26

+0

好吧..我设法让这个工作。谢谢! – irobotxxx 2010-11-09 12:14:55

相关问题