0

に問題がありますListView:

ListView アイテム xml には textarea と Imageview があり、DB から取得した各アイテムに対して、(_id に基づいて) 専用の画像を配置する必要があります。

今、私は動作するこのコードを持っています(ただし、画像はありません):

mio_db.openDataBase(); 
final Cursor data=mio_db.catalogo_prodotti();
final ListView listView1 = (ListView) findViewById(R.id.list_mia_2); 
String[] from = new String[] {"prodotto","_id"};
int[] to = new int[] {R.id.nome_prodotto_lista,R.id.freccia_prodotto_lista};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.mia_lista_2, data, from, to); 
listView1.setAdapter(adapter);

たとえば、 my_idが 4の場合、次freccia_4のような画像を配置する必要がありますR.id.freccia_prodotto_lista

やり方がわかりません。カスタムアダプターについて読んだことがありますが、実装方法がわかりません。

誰でも私を助けることができますか?

4

3 に答える 3

0

カーソルを使用してリストビューのCustomAdpterを作成する

ステップ1

このチュートリアルに従ってください

ステップ2

アレイアダプタを拡張する代わりに、カーソルアダプタを拡張する必要があります

class ListViewAdapter extends CursorAdapter {
LayoutInflater mInflater;
SimpleDateFormat sdf;

RequestLogAdapter(Context context, Cursor cursor) {
    super(context, cursor);
    mInflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

     //Get your details here
}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
                //Create layout for image with text here
    return mInflater.inflate(R.layout.mulitcolumnlistview, parent, false);
}

@Override
public void bindView(View row, Context context, Cursor cursor) {
                //You can customise here

   }
 }

それが役に立てば幸い

于 2012-08-24T13:16:37.930 に答える
0

私は別の方法で解決しましたが、おそらく正しい方法ではありませんが、今のところ機能しています:

    setContentView(R.layout.prodotti);
    final Database_mio database_classe=new Database_mio(this); 
    database_classe.openDataBase(); 
    final Cursor data_mio=database_classe.catalogo_prodotti();
    ArrayList<Prodotto_per_lista> personList=new ArrayList<Prodotto_per_lista>();
    int prodotto=data_mio.getColumnIndex("prodotto");
    int id_immagine=data_mio.getColumnIndex("_id");
    while(data_mio.moveToNext()){
        switch(Integer.parseInt(data_mio.getString(id_immagine))){
            case 1:
                personList.add(new Prodotto_per_lista(R.drawable.freccia_1,data_mio.getString(prodotto)));
                break;
            case 18:
                personList.add(new Prodotto_per_lista(R.drawable.freccia_18,data_mio.getString(prodotto)));
                break;
            case 23:
                personList.add(new Prodotto_per_lista(R.drawable.freccia_23,data_mio.getString(prodotto)));
                break;
            case 28:
                personList.add(new Prodotto_per_lista(R.drawable.freccia_28,data_mio.getString(prodotto)));
                break;
            case 30:
                personList.add(new Prodotto_per_lista(R.drawable.freccia_30,data_mio.getString(prodotto)));
                break;
            case 35:
                personList.add(new Prodotto_per_lista(R.drawable.freccia_35,data_mio.getString(prodotto)));
                break;
            case 41:
                personList.add(new Prodotto_per_lista(R.drawable.freccia_41,data_mio.getString(prodotto)));
                break;
            case 48:
                personList.add(new Prodotto_per_lista(R.drawable.freccia_48,data_mio.getString(prodotto)));
                break;
            case 53:
                personList.add(new Prodotto_per_lista(R.drawable.freccia_53,data_mio.getString(prodotto)));
                break;
            case 57:
                personList.add(new Prodotto_per_lista(R.drawable.freccia_57,data_mio.getString(prodotto)));
                break;
        }
    }
    ArrayList<HashMap<String, Object>> data=new ArrayList<HashMap<String,Object>>();
    for(int i=0;i<personList.size();i++){
            Prodotto_per_lista p=personList.get(i);
            HashMap<String,Object> personMap=new HashMap<String, Object>();
            personMap.put("name", p.getName());
            personMap.put("image", p.getPhotoRes());
            data.add(personMap);
    }
    String[] from={"name","image"};
    int[] to={R.id.nome_prodotto_lista,R.id.freccia_prodotto_lista};
    SimpleAdapter adapter=new SimpleAdapter(
                    getApplicationContext(),
                    data,
                    R.layout.mia_lista_2,
                    from,
                    to);
    ((ListView)findViewById(R.id.list_mia_2)).setAdapter(adapter);
于 2012-08-24T14:02:54.677 に答える
0

唯一の問題は、項目の ID がデータベースの _id ではなく、配列 (data.add) から取得されるようになったことです。

于 2012-08-24T15:37:03.827 に答える