2016-03-02 4 views
-1

Я пытаюсь извлечь данные из другого вида деятельности и добавить его в ListView, который находится в моей основной актив- ностиListView добавление элементов из 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(); 
      } 
     } 
    } 

Теперь моя проблема, когда я выборки данных и элементы в первый раз добавляются отлично, но когда я иду и добавляю его во второй раз, ранее добавленные элементы больше не видны (то есть ... старые элементы удаляются и добавляются новые элементы)

Я хочу добавить новые элементы для существующих элементов, и в настоящее время я не храню какие-либо данные элементов списка.

Может ли кто-нибудь помочь мне с этим?

+1

Один из вариантов заключается в том, чтобы сделать ваш статичный список таким, чтобы у вас было это для всего приложения .... или вы можете сохранить данные в сохраненном состоянии и вернуть его –

+0

создать некоторый статический держатель данных, который поможет решить вашу проблему – droidev

ответ

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(); 

    } 

} }

во второй активности добавить данные в статический список

MainActivity.fetchList.add(your data); 

и передать сверток с флагом первой активности на спине

0

поставить эти две строки из цикла ..

lv.setAdapter(arrayAdapter); 
      arrayAdapter.notifyDataSetChanged(); 
Смежные вопросы