我的listview有问题,数据完全正常工作但是当我滚动它时标题不断重复,但当我点击它时内容正在工作。
这是模拟器中的图像。
这是我数据库中的数据
这是我在listview中使用的代码
dataset_cursor = helper.getBooksByTitle2();
startManagingCursor(dataset_cursor);
adapter = new ContentAdapter(dataset_cursor);
list.setAdapter(adapter);`
class ContentAdapter extends CursorAdapter{
ContentAdapter(Cursor c)
{
super(LEGALe.this, c);
}
public void bindView(View row, Context ctxt, Cursor c)
{
ContentHolder holder = (ContentHolder)row.getTag();
holder.populateFrom(c, helper);
}
public View newView (Context ctxt, Cursor c, ViewGroup parent)
{
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.row2, parent, false);
ContentHolder holder = new ContentHolder(row);
row.setTag(holder);
return(row);
}
}
public Cursor getBooksByTitle2()
{
return (getReadableDatabase().rawQuery("SELECT _id,table_of_content FROM tblContent WHERE title_id='"+ LEGALe.passedVar.toString() +"' ORDER BY table_of_content" , null));
}
答案 0 :(得分:0)
它与查看项目的回收有关。我认为您没有正确管理 getView 。
但是,我的建议是使用addHeaderView
将标题设置为列表标题中的视图。
或者,也许完全从 ListView 中取出它(因此它始终可见)并在 ListView 之上单独设置为TextView
。
答案 1 :(得分:0)
如果你在我的问题中看到丢失的数据显示在listview内,android只创建了活动上可见的列表项的那么多实例,滚动列表后它将相同的实例分配给其他项目on ..这就是为什么你的滚动标题不断重复
例如,如果列表显示10项如item1,item2 ------- item10意味着在滚动后创建10个实例,看到第11项android为12 2实例分配1个实例,依此类推
答案 2 :(得分:0)
您的适配器似乎没有正确实现,请执行以下操作:
dataset_cursor = helper.getBooksByTitle2();
startManagingCursor(dataset_cursor);
adapter = new ContentAdapter(dataset_cursor); list.setAdapter(adapter);
class ContentAdapter extends CursorAdapter
{
ContentAdapter(Cursor c)
{
super(LEGALe.this, c);
}
public void bindView(View row, Context ctxt, Cursor c)
{
//Get Item from Cursor
//Set values to views
}
public View newView (Context ctxt, Cursor c, ViewGroup parent)
{
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.row2, parent, false);
return(row);
}
}
public Cursor getBooksByTitle2()
{
return (getReadableDatabase().rawQuery("SELECT _id,table_of_content FROM tblContent WHERE title_id='"+ LEGALe.passedVar.toString() +"' ORDER BY table_of_content" , null));
}