2016-03-10 3 views
0

Я хочу, чтобы добавить все элементы из папки с фотографиями, чтобы ArrayList и ниже мой код -андроида: как добавить элемент в список массива

вот моя моделью

public class Model { 
    private String image; 

    public String getImage() { 
     return image; 
    } 

    public void setImage(String image) { 
     this.image = image; 
    } 
} 

вот моя деятельность

public class MainActivity extends Activity { 

    private Model model; 
    private ArrayList<Model> alPhoto; 
    private File file; 

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

     alPhoto = new ArrayList<Model>(); 
     String root_sd = Environment.getExternalStorageDirectory().toString(); 
     file = new File(root_sd + "/photo/"); 
     File list[] = file.listFiles(); 

     for (int i = 0; i < list.length; i++) { 

    //  alPhoto.add(list[i].getName()); 

      model = new Model(); 
      model.setImage(alPhoto.get(i).getImage()); 
      alPhoto.add(model); 

      Log.e("Load image from sd card******* : ", "Loading...." + alPhoto.get(i)); 
     } 
    } 
} 
+0

Что такое проблема –

+0

Я не могу установить изображение в arraylist, показывая индекс массива outof bound. –

ответ

1

Наконец я получил решение.

for (int i = 0; i < list.length; i++) 
{ 
     String strPath = list[i].getAbsolutePath(); 
     Log.e("Checking path",">>"+strPath); 

     Model model = new Model(); 
     model.setImage(strPath); 
     alPhoto.add(model); 

     Log.e("Checking arraylist",">>"+alPhoto); 
} 
0

Проблема в вашей петле. Вы объявляете модель глобально так, которая добавляется только последний элемент в списке вашей проблемы, а не локально в заявляет цикл

for (int i = 0; i < list.length; i++) { 
// alPhoto.add(list[i].getName()); 

     Model model = new Model(); 
     model.setImage(alPhoto.get(i).getImage()); 
     alPhoto.add(model); 


     Log.e("Load image from sd card******* : ", "Loading...." + alPhoto.get(i)); 

    } 
+0

Спасибо за ответ, но все еще показываю ошибку. Невозможно запустить Activity ComponentInfo {com.example.android.demogridview/com.example.android.demogridview.MainActivity}: java.lang.IndexOutOfBoundsException: Недопустимый индекс 0, размер 0 –

+0

Перед проверкой цикла с условием list.length> 0 – Ajinkya

Смежные вопросы