1

私は自分のアプリに を持っています。画面に表示さGridViewれるまではうまくいきます。scrollこれを行うと、次のアイテムを持っている間、アップしているアイテムが変化し続けます。最後のアイテムがgridview来ると、すべてのアイテムが彼に変換されます。(下手な英語でごめんなさい)

私はリストoアイテムを持っていますsqlite、私ImageAdapterはこれです(Image + textlayout.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