J'essaie de mettre à jour ma vue de liste lors de l'enregistrement d'une nouvelle enquête dans mon application.
Mais je ne suis pas encore en mesure de remplir cette fonction.
Voici un peu de mon code:
public class MainActivity extends AppCompatActivity {
private ListView lv1;
private GeoXML xml;
private ArrayList<Releve> listeReleve = new ArrayList<Releve>();
public void onClickUndefined(View view) {
Toast.makeText(view.getContext(), "Fonction non implémenté", Toast.LENGTH_LONG).show();
}
public void onClickCreateReport(View view) {
Intent intent = new Intent(MainActivity.this, NewSurveyActivity.class);
intent.putExtra("ReleveExistant", false);
startActivity(intent);
}
@Override
public void onResume() {
super.onResume();
listeReleve.clear();
scanForReleve();
lv1.deferNotifyDataSetChanged();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ImageView imgNouveauReleve = (ImageView) findViewById(R.id.Img_Nouveau_Releve);
ImageView imgBoutonAjouter = (ImageView) findViewById(R.id.bouton_ajouter);
TextView txtNouveauReleve = (TextView) findViewById(R.id.MA_TitreListeReleve);
lv1 = (ListView) findViewById(R.id.MA_ListeReleves);
//supprimerTout();
//scanForReleve();
//ArrayList<Releve> listeReleve = GetSearchResults();
//listeReleve.clear();
if (!listeReleve.isEmpty()) {
imgNouveauReleve.setVisibility(View.INVISIBLE);
imgBoutonAjouter.setVisibility(View.VISIBLE);
txtNouveauReleve.setVisibility(View.VISIBLE);
lv1.setVisibility(View.VISIBLE);
lv1.setAdapter(new MyCustomBaseAdapter(this, listeReleve));
lv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = lv1.getItemAtPosition(position);
Releve fullObject = (Releve) o;
//Toast.makeText(MainActivity.this, "Vous avez choisi : " + " " + fullObject.getProjet(), Toast.LENGTH_LONG).show();
Intent intent = new Intent(MainActivity.this, NewSurveyActivity.class);
intent.putExtra("Releve", fullObject);
intent.putExtra("ReleveExistant", true);
startActivity(intent);
}
});
} else {
imgNouveauReleve.setVisibility(View.VISIBLE);
imgBoutonAjouter.setVisibility(View.INVISIBLE);
txtNouveauReleve.setVisibility(View.INVISIBLE);
lv1.setVisibility(View.INVISIBLE);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public boolean supprimerTout (){
String filepath = "";
ContextWrapper contextWrapper = new ContextWrapper(getApplicationContext());
File dir = contextWrapper.getDir(filepath, Context.MODE_PRIVATE);
//File dir = new File(releve.getPath());
if (dir.isDirectory())
{
String[] children = dir.list();
for (int i = 0; i < children.length; i++)
{
new File(dir, children[i]).delete();
}
}
dir.delete();
return true;
}
public void scanForReleve(){
ContextWrapper contextWrapper = new ContextWrapper(getApplicationContext());
File directory = contextWrapper.getDir("", Context.MODE_PRIVATE);
File dir = new File(directory.getPath() + "/releve/");
GeoXML xmlObj = new GeoXML();
if (dir.isDirectory())
{
String[] children = dir.list();
for (int i = 0; i < children.length; i++)
{
listeReleve.add(xmlObj.lireXML(directory.getPath(), children[i]));
}
}
}
}
C'est la première fois que je joue avec la méthode onResume ().
Je ne sais pas si c'est la bonne façon de procéder.
Vous devez être informé du résultat de l' NewSurveyActivity
utilisation startActivityForResult()
. Utilisez le lien suivant pour l'implémenter.
Comment gérer `startActivityForResult` sur Android?
Vous pouvez mettre à jour la liste uniquement dans le cas de RESULT_OK.
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots