1

我的应用程序上有一个,在你出现在屏幕上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>

我真的需要一些帮助,我尝试了很多选择,但一无所获。谢谢 :)

4

0 回答 0