2010-10-29 9 views
0

J'utilise ce code suivant qui crée un ListView avec du texte et une icône, mais le problème que j'ai, c'est que je veux que le tableau soit dynamique plutôt que statique ma liste est créée dynamiquement pas statistiquement. Mon but ultime est de récupérer des chaînes spécifiques de mon Db et de les afficher ensuite dans la Listview où chaque chaîne serait dans chaque rangée. Merci beaucoup d'avance.Tableau dynamique au lieu de statique lors de la création d'icônes et de texte ListView Android

Mon code source:

import java.util.ArrayList; 
    import android.app.Activity; 
    import android.app.ListActivity; 
    import android.database.Cursor; 
    import android.database.sqlite.SQLiteDatabase; 
    import android.os.Bundle; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.widget.AdapterView; 
    import android.widget.AdapterView.OnItemClickListener; 
    import android.widget.ArrayAdapter; 
    import android.widget.ImageView; 
    import android.widget.ListView; 
    import android.widget.TextView; 
    import android.widget.Toast; 

    public class History extends ListActivity implements OnItemClickListener { 

String keyWord = ""; 
String histDesRes = ""; 
String history = ""; 
String rawImage; 
ArrayList<String> Ra = new ArrayList<String>(); 
SQLiteDatabase mydb; 
TextView selection; 
public String[] result={keyWord, "ipsum", "dolor", 
     "sit", "amet", 
     "consectetuer", "adipiscing", "elit", "morbi", "vel", 
     "ligula", "vitae", "arcu", "aliquet", "mollis", 
     "etiam", "vel", "erat", "placerat", "ante", 
     "porttitor", "sodales", "pellentesque", "augue", "purus"}; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.history); 
    populate(); 




} 


@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    //populate(); 
} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    //populate(); 
} 

@Override 
protected void onStart() { 
    // TODO Auto-generated method stub 
    super.onStart(); 
    //populate(); 
} 

void populate() { 

    mydb = openOrCreateDatabase("vivo_id.db", 
      SQLiteDatabase.CREATE_IF_NECESSARY, null); 
    Cursor c = mydb.query("VIVOID", null, null, null, null, null, null); 
    // start the managing cursor 
    startManagingCursor(c); 
    // move to first row 
    c.moveToFirst(); 
    // continue searching until it is the last row in the column 
    while (c.isAfterLast() == false) { 

     rawImage = c.getString(c.getColumnIndex("couponThumbnailResult")); 
     keyWord = c.getString(c.getColumnIndex("keyWordResult")); 
     histDesRes = c.getString(c.getColumnIndex("historyDescriptionResult")); 
     //Toast.makeText(getApplicationContext(), 
       //history, Toast.LENGTH_LONG).show(); 
     history = keyWord+" "+ histDesRes; 
     c.moveToNext(); 
     } 

    // close everything 
    c.close(); 
    mydb.close(); 
    setListAdapter(new IconicAdapter()); 
    selection=(TextView)findViewById(R.id.selection); 

} 

public void onListItemClick(ListView parent, View v, int position, long id) { 
    Toast.makeText(getApplicationContext(), 
      "Inside listen", Toast.LENGTH_LONG).show(); 

} 

class IconicAdapter extends ArrayAdapter { 
    IconicAdapter() { 
     super(History.this, R.layout.row, result); 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = getLayoutInflater(); 
     View row = inflater.inflate(R.layout.row, parent, false); 
     TextView label = (TextView) row.findViewById(R.id.label); 
     label.setText(result[position]); 

     ImageView icon = (ImageView) row.findViewById(R.id.icon); 


      icon.setImageResource(R.drawable.ok); 

     return (row); 
    } 
} 

@Override 
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
    // TODO Auto-generated method stub 

} 

    } 

    /** 
    * On Item click event for the list view 
    */ 

Répondre

0
while (c.isAfterLast() == false) { 
     rawImage = c.getString(c.getColumnIndex("couponThumbnailResult")); 
     keyWord = c.getString(c.getColumnIndex("keyWordResult")); 
     histDesRes = c.getString(c.getColumnIndex("historyDescriptionResult")); 
     //Toast.makeText(getApplicationContext(), 
     //history, Toast.LENGTH_LONG).show(); 
     history = keyWord+" "+ histDesRes; 
     //Use an ArrayList to store your results from the DB 
     c.moveToNext(); 
    } 

String[] results = yourArrayList.toArray(); 

utiliser ce tableau dans votre adaptateur ....

+0

Salut Umesh, Tout d'abord je voulais vous remercier d'avoir pris le temps de répondre mais malheureusement, cette solution n'a pas fonctionné pour moi si vous pouvez s'il vous plaît donner une explication un peu plus explicite et peut-être poster un peu de croire ou pas une question de vie ou de mort, il est si vital pour mon application merci beaucoup. –

+0

avez-vous une erreur ou quelque chose. Dans ce cas, pouvez-vous poster le journal. – Umesh