【急】【Android studio】 【将Sqlite显示到listview】为什么我的listview只显示一个 item,数据库里明明有三四条数据

【Android studio】 【将Sqlite显示到listview】为什么我的listview只显示一个 item,数据库里明明有三四条数据

lv.setAdapter(new BaseAdapter() {

/*

  • 为ListView设置一个适配器

  • getCount()返回数据个数

  • getView()为每一行设置一个条目

  • */

@Override

public int getCount() {

return goodsArray.size();

}

@Override

public Object getItem(int position) {

// return studentlist.get(position);

return null;

}

@Override

public long getItemId(int position) {

// return position;

return 0;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view ;

/**对ListView的优化,convertView为空时,创建一个新视图;

  • convertView不为空时,代表它是滚出,

  • 放入Recycler中的视图,若需要用到其他layout,

  • 则用inflate(),同一视图,用fiindViewBy()

  • **/

if(convertView == null )

{

LayoutInflater inflater = getActivity().getLayoutInflater();

view = inflater.inflate(R.layout.item,null);

// view = inflater.inflate(R.layout.item,null);

//view = View.inflate(getBaseContext(),R.layout.item,null);

}

else

{

view = convertView;

}

//从goodsArray中取出一行数据,position相当于数组下标,可以实现逐行取数据

goodsInfo goodsinfo = goodsArray.get(position);

TextView name = (TextView)view.findViewById(R.id.listview_name);

TextView goods_number = (TextView)view.findViewById(R.id.listview_goodsnumber);

TextView in_price = (TextView)view.findViewById(R.id.listview_inprice);

TextView out_price = (TextView)view.findViewById(R.id.listview_outprice);

TextView update_time = (TextView)view.findViewById(R.id.listview_updatetime);

name.setText(goodsinfo.getName());

goods_number.setText(goodsinfo.getgoods_number());

in_price.setText(String.valueOf(goodsinfo.getin_price()));

out_price.setText(String.valueOf(goodsinfo.getout_price()));

update_time.setText(goodsinfo.getupdate_time());

return view;

}

});

1个回答

为啥要把正确的注释掉?
@Override

public Object getItem(int position) {

// return studentlist.get(position);

return null;

}

@Override

public long getItemId(int position) {

// return position;

return 0;

}

qq_33750826
有头发的猿 回复nerozale: 可以关注我一下哈哈
6 个月之前 回复
nerozale
nerozale 解决了 谢谢大佬 是listviewe的高度不够 而且add多了一次
6 个月之前 回复
qq_33750826
有头发的猿 回复nerozale: 恩,你自己可以打印下是不是add了8次。
6 个月之前 回复
nerozale
nerozale 回复有头发的猿: 重复add是arraylist的add操作问题吗
6 个月之前 回复
qq_33750826
有头发的猿 回复nerozale: 那应该是你重复add了一遍,getView有8条,应该没多大问题,你是不是ListView高度不够,你往下滑试试
6 个月之前 回复
nerozale
nerozale 刚放到getview中 显示有8 但是数据库里就4条数据
6 个月之前 回复
qq_33750826
有头发的猿 回复nerozale: 你这里打印的都是8条数据了:D/显示goodsArray.size()内容: goodsArray.size()有:8
6 个月之前 回复
qq_33750826
有头发的猿 回复nerozale: 是在这个函数里面打印的吗public View getView(int position, View convertView, ViewGroup parent) {
6 个月之前 回复
nerozale
nerozale 这里对应的是数据库里的四条数据吧
6 个月之前 回复
nerozale
nerozale 回复有头发的猿: Log.d("显示goodsArray.size()内容","goodsArray.size()有:"+goodsArray.size()); 然后内容是:04-29 15:58:37.179 30178-30178/? D/显示goodsArray.size()内容: goodsArray.size()有:5 04-29 15:58:37.179 30178-30178/? D/显示goodsArray.size()内容: goodsArray.size()有:6 04-29 15:58:37.179 30178-30178/? D/显示goodsArray.size()内容: goodsArray.size()有:7 04-29 15:58:37.179 30178-30178/? D/显示goodsArray.size()内容: goodsArray.size()有:8
6 个月之前 回复
qq_33750826
有头发的猿 回复nerozale: 你先把这两个注释改回去,然后打印一下goodsArray.size的大小是多少,调试一下,这种问题很简答的
6 个月之前 回复
nerozale
nerozale 跟着网上的project敲的 return studentlist.get(position);return position;把这两个弄回去也是一样就一个item
6 个月之前 回复
立即提问