2012-08-24 70 views
0

我有我的ListView問題不同:列表視圖與圖像的每個項目

的ListView項XML有一個textarea和ImageView的,從數據庫取每個項目,我需要放置一個專用的圖像(基於_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); 

例如,如果我的_id 4我需要把圖像像freccia_4R.id.freccia_prodotto_lista

我不不知道該怎麼做。我讀過關於自定義適配器,但我不明白如何實現它。

任何人都可以幫助我嗎?

+1

'SimpleCusorAdapter'構造函數已被棄用。 http://developer.android.com/reference/android/widget/SimpleCursorAdapter.html更好地使用自定義適配器。以下示例http://www.androidchennai.blogspot.in/2012/03/android-listview-example.html –

+0

問題是,教程不使用遊標來做到這一點... – Zak

+0

下面的教程將有助於您的需求** [自定義列表視圖](http://www.ezzylearning.com/tutorial.aspx?tid=1763429)和[this](http://android-er.blogspot.co.uk/2010/06/ custom-arrayadapter -with-with-different.html)**視頻 - [youtubeVideo](http://www.youtube.com/watch?v=LjAlNfa6obU)希望它有幫助 – GoCrazy

回答

0

使用光標您的列表視圖中創建CustomAdpter

第一步

Follow this tutorial

第二步

不是擴展陣列適配器擴展光標適配器,它應該工作

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 

    } 
} 

希望它可以幫助

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); 
0

只有現在的問題是項目的ID現在取自數組(data.add)而不是數據庫中的_id ..

相關問題