我的应用程序上有一个,在你出现在屏幕上GridView
之前效果很好。scroll
当您执行此操作时,向上的项目继续更改,而有下一个项目。当最后一个物品gridview
来临时,所有物品都转换为他。(对不起我的英语不好)
我有一个项目列表sqlite
,我ImageAdapter
是这个(Image + text
来自 layout.xml)
public class ImageAdapter extends BaseAdapter{
private Context mContext;
private int nSonidos;
private Cursor sonidoscursor;
private int sonidoactual;
public ImageAdapter(Context c){
mContext = c;
sonidoscursor = dbr.rawQuery(" SELECT id FROM sonidos order by nombre", null);
if(sonidoscursor.getCount()>0){
nSonidos = sonidoscursor.getCount();
}else{
nSonidos = 0;
}
if (sonidoscursor.moveToFirst()) {
sonidoactual = sonidoscursor.getInt(0);
sonidoscursor.moveToNext();
}
}
@Override
public int getCount() {return nSonidos;}
@Override
public Object getItem(int arg0) {return null;}
@Override
public long getItemId(int arg0) {return 0;}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if(convertView==null){
LayoutInflater li = getLayoutInflater();
v = li.inflate(R.layout.icon, null);
}else{
v = convertView;
}
TextView tv = (TextView)v.findViewById(R.id.icon_text);
tv.setText(getNombre(sonidoactual, "sonidos"));
try{
sonidoactual = sonidoscursor.getInt(0);
sonidoscursor.moveToNext();
}catch(CursorIndexOutOfBoundsException e){
e.printStackTrace();
}
ImageView iv = (ImageView)v.findViewById(R.id.icon_image);
iv.setImageResource(R.drawable.ic_launcher);
return v;
}
}
对于桌子上的每个项目,我都有一个getView
项目,但问题是当我滚动它时。我阅读了更多 5 个问题,但没有一个对我有用。:S
我的 get nombre 方法:
public String getNombre(int indice, String tipo){
Cursor c = dbr.rawQuery(" SELECT nombre FROM "+tipo+" WHERE id="+indice, null);
String nombre = "";
if (c.moveToFirst()) {
nombre=c.getString(0);
}
return nombre;
}
Gridview
很简单:
<GridView
android:id="@+id/gridtodos"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:horizontalSpacing="10sp"
android:numColumns="3"
android:verticalSpacing="10sp" >
</GridView>
我真的需要一些帮助,我尝试了很多选择,但一无所获。谢谢 :)