set TextView d'une listview depuis une base de données depuis une autre activity
Bonjour,
Voilà j'extrais des données depuis un fichier excel, ces données sont affichées en listview par l’intermédiaire d'un adapter.
Je voudrais donner la possibilité à l'utilisateur de rentrer un commentaire et que celui ci s'affiche dans la listview.
Les commentaires sont enregistrés dans une base de données.
Je n'arrive pas à "setter" le/les commentaire(s) depuis ma PreferenceActivity à mon Activity principale.
Please help me.
Activity principale:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
public class DisplayMyCoProd extends Activity {
TextView txtv;
String pathFile;
private ArrayList<Locom> myList;
private CommentaireDbAdapter dbHelper;
//private SimpleCursorAdapter dataAdapter;
LocomAdpater dataAdapter;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.display_my_co_prod);
Intent intent = getIntent();
pathFile = intent.getStringExtra("EXTRA_pathFile");
txtv = (TextView) findViewById(R.id.textView);
txtv.setText(pathFile);
myList = new ArrayList<Locom>();
dataAdapter = new LocomAdpater(this, myList);
listView = (ListView) findViewById(R.id.display_listview);
listView.setAdapter(dataAdapter);
listView.setOnItemClickListener(new ItemListView());
DownLoadExcel dlExcel = new DownLoadExcel(DisplayMyCoProd.this, pathFile);
dlExcel.execute();
}
public void populate(ArrayList<Locom> locom) {
this.dataAdapter.clear();
this.dataAdapter.addAll(locom);
this.dataAdapter.notifyDataSetChanged();
}
private class ItemListView implements AdapterView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ViewGroup vg = (ViewGroup)view;
TextView tv_e = (TextView)vg.findViewById(R.id.tv_engin);
TextView tv_v = (TextView)vg.findViewById(R.id.tv_visite);
String engin = tv_e.getText().toString();
String visite = tv_v.getText().toString();
Toast.makeText(DisplayMyCoProd.this,engin +" : "+ visite, Toast.LENGTH_SHORT).show();
Intent ChoixDMCPActivity = new Intent(DisplayMyCoProd.this, ChoixDMCP.class);
ChoixDMCPActivity.putExtra("PATHFILE",pathFile);
ChoixDMCPActivity.putExtra("EXTRA_TV_E",engin);
ChoixDMCPActivity.putExtra("EXTRA_TV_V",visite);
startActivity(ChoixDMCPActivity);
}
}
} |
PreferenceActivity:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
myPref_commentaire.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
Intent intent = getIntent();
String engin = intent.getStringExtra("EXTRA_TV_E");
String visite = intent.getStringExtra("EXTRA_TV_V");
TextView tv = (TextView)findViewById(R.id.tv_commentaire);
// String titleFile = intent.getStringExtra("PATHFILE");
String commentaire = newValue.toString();
if (preference.getKey().equals(MON_COM)) {
if (commentaire.equals("")) {
/*
Suppression de la ligne dans la BDD
*/
} else {
ArrayList<Locom> myListCom = new ArrayList<Locom>();
Locom myCom;
myCom = new Locom(engin,visite,commentaire);
try {
dbHelper = new CommentaireDbAdapter(ChoixDMCP.this);
dbHelper.open();
dbHelper.createEntry(myCom);
}catch (Exception e){
Toast.makeText(ChoixDMCP.this, "Erreur !\nSQLite Database !", Toast.LENGTH_LONG).show();
}finally {
Toast.makeText(ChoixDMCP.this, "Success !\nCommentaire enregistré dans la base de donnée !", Toast.LENGTH_LONG).show();
}
myListCom.add(myCom);
try {
String sr = dbHelper.getCommentaire(engin, visite);
Toast.makeText(ChoixDMCP.this, sr, Toast.LENGTH_LONG).show();
tv.setText(sr);
/*DisplayMyCoProd dmcp = new DisplayMyCoProd();
dmcp.populate(myListCom);*/
} catch (SQLException e) {
e.printStackTrace();
}
/*
Setter le commentaire dans DMCP (editTextView)
*/
}
dbHelper.close();
}
return false;
}
}); |