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
*/
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. –
avez-vous une erreur ou quelque chose. Dans ce cas, pouvez-vous poster le journal. – Umesh