Mettre à jour une vue de liste avec un adaptateur de base personnalisé lors du retour dans l'activité?

Cyberflow

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.

Ahmed Hegazy

Vous devez être informé du résultat de l' NewSurveyActivityutilisation 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.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Microsoft.WebApplication.targets

  2. 2

    Exporter la table de l'arborescence vers CSV avec mise en forme

  3. 3

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  4. 4

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  5. 5

    Passer la taille d'un tableau 2D à une fonction ?

  6. 6

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  9. 9

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  10. 10

    php ajouter et fusionner des données de deux tables

  11. 11

    Créer un système Buzzer à l'aide de python

  12. 12

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  13. 13

    Comment changer la couleur de la police dans R?

  14. 14

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  15. 15

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    comment afficher un bouton au-dessus d'un autre élément ?

  18. 18

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  19. 19

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  20. 20

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  21. 21

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

chaudétiquette

Archive