2013-02-15 4 views
0

Как сохранить путь изображения в array.as Я получаю изображения dynamically.n, перечисляя их. После щелчка на одном изображении, которое я хочу отправить в предыдущую операцию. как я могу сохранить путь к изображению ?? пожалуйста, помогите мнеСохранение пути изображения из sdcard в android

below is code- 

первого деятельность- общественного недействительный ImportFile (View v) {

Intent intent=new Intent(this,ImportFile.class); 

    startActivityForResult(intent, 1); 

} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 

    if(requestCode==1) 
    { 
     String path=data.getDataString(); 
     System.out.println(";;;;;;;;;;;;"+path); 
    } 
} 

второго деятельность-

in oncreat- 
int j=0; 
File[] imagefile; 
File f = new File("/sdcard"); 
     File[] files = f.listFiles(); 

     for(int i = 0; i < files.length; i++,j++) { 
      File file1 = files[i]; 
      if(myfile.endsWith(".jpeg")){ 
       image[j]=file1;//here i'm getting nullpointer exception 
      } 
      } 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     int j; 
     // TODO Auto-generated method stub 
     for(j=1;j<idcount;j++){ 
      if(ch[j].isChecked()) 
      { 
       imagesPaths.add(image[++j].getAbsolutePath()); 

       i=new Intent(); 
       i.putExtra("files",imagesPaths); 
       setResult(RESULT_OK, i); 
       finish(); 
      }  
     } 
    } 
+0

Позвольте мне посмотреть, насколько я понимаю. У вас есть набор изображений, каждый из которых отображается с помощью контрольной кнопки, и вы намерены отправить пути выбранных изображений. Это? –

+0

yeah.i хочу сделать то же самое. Для этого мне нужно сохранить путь к изображениям –

+1

, проблема в том, что вы не создаете экземпляр изображения массива. Измените объявление массива: От: File [] image; -> To: File [] image = new File [files.lenght]; –

ответ

0

Использования Библиотека GSON

http://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/

вы можете создать строку JSON массива путь изображения затем сохранить строку JSON предпочтению

http://www.javacodegeeks.com/2011/01/android-quick-preferences-tutorial.html

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

ИЛИ

Вы можете создать статический массив в деятельности и может использовать его статически через деятельность.

0

Попробуйте так:

Ваше Вызывается активность:

File f = new File("/sdcard"); 
File[] files = f.listFiles(); 
ArrayList<String> imagesPaths = new ArrayList<String>(); // Array to store the images paths 



@Override 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 

    // TODO Auto-generated method stub 
    i=new Intent(); 
    for(int j=0; j< ch.lenght; j++){ 
     if(ch[j].isChecked()) 
     { 
      imagePaths.add(f[j].getAbsolutePath()); 
     }  
    } 
    i.putStringArrayListExtra("files", imagePaths); 
    setResult(RESULT_OK, i); 
    finish(); 
} 

Ваш Caller активность:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 

    if(requestCode==1) 
    { 
     ArrayList<String> paths= data.getStringArrayListExtra("files"); 
     System.out.println(paths.toString()); 
    } 

}

+0

Я сделал то же самое. Но получив исключение nullpointer после проверки типа изображения, я сохраняю путь к другому файлу array.i обновил свой код.see, что –

+0

вы должны убедиться, что массив ch имеет правильный размер, то есть тот же размер массива файлов. Где именно вы получаете исключение nullPointerException? –

+0

yeah.there нет проблемы с размером массива ch n файла array.hoe можно сохранить файл в файл array.its, дающий исключение из null-указателя –

0
case 1: 
      if(resultCode == RESULT_OK){ 
       Uri selectedImage = imageReturnedIntent.getData(); 
       String path = getRealPathFromURI(selectedImage); 
       LogMsg.d("PAth "+path); 
       Bitmap b = getBitmap(path); 
       bitmapList.add(b); 
       adapter.notifyDataSetChanged(); 
      } 
     break; 

, а затем;

private String getRealPathFromURI(Uri contentUri) { 
      ContentResolver resolver = getContentResolver(); 
      String[] proj = { MediaStore.Video.Media.DATA }; 
      Cursor cursor = resolver.query(contentUri, proj, null, null, null); 
      int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
      cursor.moveToFirst(); 
      return cursor.getString(column_index); 
     } 
Смежные вопросы