2016-03-02 1 views
-1

Je suis en train de chercher les données de l'autre activité et l'ajouter à la ListView qui est dans ma principale acitivitéListview ajouter des éléments de otherActivity

ArrayAdapter<String> arrayAdapter; 
    ArrayList<String> fetchList= new ArrayList<String>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     lv = (ListView) findViewById(R.id.imglist); 
     arrayAdapter = new ArrayAdapter<String>(
       this, 
       R.layout.custom_textview,R.id.listtext, 
       myStringList); 
     Bundle extras = getIntent().getExtras(); 

     if (extras != null) { 

      fetchList= getIntent().getStringArrayListExtra("data"); 
      for(int i = 0 ; i < fetchList.size() ; i++) { 
       filepath = fetchList.get(i); 
       imgfilename=filepath.substring(filepath.lastIndexOf("/")+1); 
       myStringList.add(imgfilename); 
       lv.setAdapter(arrayAdapter); 
       arrayAdapter.notifyDataSetChanged(); 
      } 
     } 
    } 

Maintenant, mon problème est quand je récupérer les données et la articles pour la première fois, il ajoute parfaitement, mais quand je vais l'ajouter pour la deuxième fois les articles ajoutés précédemment ne sont plus vus (ie les anciens articles sont supprimés et de nouveaux articles sont ajoutés)

Je veux ajouter les nouveaux articles aux articles existants et je ne stocke pas n'importe quel genre de données d'articles de listview pour le moment.

Quelqu'un peut-il m'aider avec ceci?

+1

une option est de rendre votre liste statique de sorte que vous aurez pour l'application entière .... ou vous pouvez enregistrer vos données dans l'état savedinstance et le récupérer –

+0

créer un support de données statiques, cela va résoudre votre problème – droidev

Répondre

0

ArrayAdapter arrayAdapter; public static ArrayList fetchList = new ArrayList();

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    lv = (ListView) findViewById(R.id.imglist); 
    arrayAdapter = new ArrayAdapter<String>(
      this, 
      R.layout.custom_textview,R.id.listtext, 
      myStringList); 
    ArrayAdapter<String> arrayAdapter; 
ArrayList<String> fetchList= new ArrayList<String>(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    lv = (ListView) findViewById(R.id.imglist); 
    arrayAdapter = new ArrayAdapter<String>(
      this, 
      R.layout.custom_textview,R.id.listtext, 
      myStringList); 
    Bundle extras = getIntent().getExtras(); 

    if (extras != null) { 

     //get some flag to notify adpter refresh 
     if(getIntent().getBoolean("refresh")) 
      arrayAdapter.notifyDataSetChanged(); 

    } 

} }

deuxième activité ajouter des données à la liste statique

MainActivity.fetchList.add(your data); 

et passer bundle avec le drapeau de la première activité sur le dos

0

mettre ces deux lignes de boucle ..

lv.setAdapter(arrayAdapter); 
      arrayAdapter.notifyDataSetChanged();