2012-08-24 34 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 ..

相关问题