0

Я пытаюсь загрузить одно изображение с созданием профиля в моем приложении. Я создал кнопку для просмотра изображения из галереи/камеры, но код показывает сообщение об ошибке как «Unreachable code». Я получаю эту ошибку только для просмотра изображений при нажатии кнопки. остальная часть кода отлично работает для создания формы и сохраняет ее на SQLite. Часть кода приведена ниже. Помощь Plz.Проблема при загрузке изображения на SQLite в Android

public class NewPetsFragment extends Fragment implements OnClickListener{ 
    private DBCreater dbCreate; 

    //Button addImage; 
    private static final int CAMERA_REQUEST = 1; 
    private static final int PICK_FROM_GALLERY = 2; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View gv = inflater.inflate(R.layout.new_pet, null); 

     Spinner sp = (Spinner) gv.findViewById(R.id.ETPetType); 
     // get reference 
     sp.setAdapter(new ArrayAdapter<String>(getActivity().getBaseContext(), android.R.layout.simple_spinner_dropdown_item, petType)); 

     Button btnSubmit = (Button) gv.findViewById(R.id.ButtonNext); 
     btnSubmit.setOnClickListener(this); 
     return gv; 

     /** 
     * open dialog for choose camera/gallery 
     */ 

     final String[] option = new String[] { "Take from Camera", 
       "Select from Gallery" }; 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity().getBaseContext(), 
       android.R.layout.select_dialog_item, option); 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity().getBaseContext()); 

     builder.setTitle("Select Option"); 
     builder.setAdapter(adapter, new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
       // TODO Auto-generated method stub 
       Log.e("Selected Item", String.valueOf(which)); 
       if (which == 0) { 
        callCamera(); 
       } 
       if (which == 1) { 
        callGallery(); 
       } 

      } 
     }); 
     final AlertDialog dialog = builder.create(); 

     View pv = inflater.inflate(R.layout.new_pet, null); 

     Button addImage = (Button) pv.findViewById(R.id.ETPetImg); 

     addImage.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       dialog.show(); 
      } 
     }); 

    } 

    /** 
    * open camera method 
    */ 
    public void callCamera() { 
     Intent cameraIntent = new Intent(
       android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     cameraIntent.putExtra("crop", "true"); 
     cameraIntent.putExtra("aspectX", 0); 
     cameraIntent.putExtra("aspectY", 0); 
     cameraIntent.putExtra("outputX", 200); 
     cameraIntent.putExtra("outputY", 150); 
     startActivityForResult(cameraIntent, CAMERA_REQUEST); 

    } 

    /** 
    * open gallery method 
    */ 

    public void callGallery() { 
     Intent intent = new Intent(); 
     intent.setType("image/*"); 
     intent.setAction(Intent.ACTION_GET_CONTENT); 
     intent.putExtra("crop", "true"); 
     intent.putExtra("aspectX", 0); 
     intent.putExtra("aspectY", 0); 
     intent.putExtra("outputX", 200); 
     intent.putExtra("outputY", 150); 
     intent.putExtra("return-data", true); 
     startActivityForResult(
       Intent.createChooser(intent, "Complete action using"), 
       PICK_FROM_GALLERY); 

    } 
+1

Мой совет: «Сохраните изображение на SD-карте и сохраните путь к образцу базы данных SQLite». – Bishan

ответ

0

Просто вернуть ГВ в конце

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View gv = inflater.inflate(R.layout.new_pet, null); 

     Spinner sp = (Spinner) gv.findViewById(R.id.ETPetType); 
     // get reference 
     sp.setAdapter(new ArrayAdapter<String>(getActivity().getBaseContext(), android.R.layout.simple_spinner_dropdown_item, petType)); 

     Button btnSubmit = (Button) gv.findViewById(R.id.ButtonNext); 
     btnSubmit.setOnClickListener(this); 

     /** 
     * open dialog for choose camera/gallery 
     */ 

     final String[] option = new String[] { "Take from Camera", 
       "Select from Gallery" }; 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity().getBaseContext(), 
       android.R.layout.select_dialog_item, option); 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity().getBaseContext()); 

     builder.setTitle("Select Option"); 
     builder.setAdapter(adapter, new DialogInterface.OnClickListener() { 

      public void onClick(DialogInterface dialog, int which) { 
       // TODO Auto-generated method stub 
       Log.e("Selected Item", String.valueOf(which)); 
       if (which == 0) { 
        callCamera(); 
       } 
       if (which == 1) { 
        callGallery(); 
       } 

      } 
     }); 
     final AlertDialog dialog = builder.create(); 

     View pv = inflater.inflate(R.layout.new_pet, null); 

     Button addImage = (Button) pv.findViewById(R.id.ETPetImg); 

     addImage.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       dialog.show(); 
      } 
     }); 

    return gv; 

    } 

Но я рекомендую вам хранить изображения в качестве кэш-памяти приложения.

0

Ваш возврат gv слишком рано. Помещенный обратный телевизор в нижней части способа, чтобы сделать код ниже его доступным

0

вам нужно вернуть ГВ в конце, как этот

public class NewPetsFragment extends Fragment implements OnClickListener{ 
 
    private DBCreater dbCreate; 
 

 
    //Button addImage; 
 
    private static final int CAMERA_REQUEST = 1; 
 
    private static final int PICK_FROM_GALLERY = 2; 
 

 
    @Override 
 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
 
      Bundle savedInstanceState) { 
 
     View gv = inflater.inflate(R.layout.new_pet, null); 
 

 
     Spinner sp = (Spinner) gv.findViewById(R.id.ETPetType); 
 
     // get reference 
 
     sp.setAdapter(new ArrayAdapter<String>(getActivity().getBaseContext(), android.R.layout.simple_spinner_dropdown_item, petType)); 
 

 
     Button btnSubmit = (Button) gv.findViewById(R.id.ButtonNext); 
 
     btnSubmit.setOnClickListener(this); 
 
     
 
     /** 
 
     * open dialog for choose camera/gallery 
 
     */ 
 

 
     final String[] option = new String[] { "Take from Camera", 
 
       "Select from Gallery" }; 
 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity().getBaseContext(), 
 
       android.R.layout.select_dialog_item, option); 
 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity().getBaseContext()); 
 

 
     builder.setTitle("Select Option"); 
 
     builder.setAdapter(adapter, new DialogInterface.OnClickListener() { 
 

 
      public void onClick(DialogInterface dialog, int which) { 
 
       // TODO Auto-generated method stub 
 
       Log.e("Selected Item", String.valueOf(which)); 
 
       if (which == 0) { 
 
        callCamera(); 
 
       } 
 
       if (which == 1) { 
 
        callGallery(); 
 
       } 
 

 
      } 
 
     }); 
 
     final AlertDialog dialog = builder.create(); 
 

 
     View pv = inflater.inflate(R.layout.new_pet, null); 
 

 
     Button addImage = (Button) pv.findViewById(R.id.ETPetImg); 
 

 
     addImage.setOnClickListener(new View.OnClickListener() { 
 
      public void onClick(View v) { 
 
       dialog.show(); 
 
      } 
 
     }); 
 

 
    \t return gv; 
 

 
    } 
 

 
    /** 
 
    * open camera method 
 
    */ 
 
    public void callCamera() { 
 
     Intent cameraIntent = new Intent(
 
       android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
 
     cameraIntent.putExtra("crop", "true"); 
 
     cameraIntent.putExtra("aspectX", 0); 
 
     cameraIntent.putExtra("aspectY", 0); 
 
     cameraIntent.putExtra("outputX", 200); 
 
     cameraIntent.putExtra("outputY", 150); 
 
     startActivityForResult(cameraIntent, CAMERA_REQUEST); 
 

 
    } 
 

 
    /** 
 
    * open gallery method 
 
    */ 
 

 
    public void callGallery() { 
 
     Intent intent = new Intent(); 
 
     intent.setType("image/*"); 
 
     intent.setAction(Intent.ACTION_GET_CONTENT); 
 
     intent.putExtra("crop", "true"); 
 
     intent.putExtra("aspectX", 0); 
 
     intent.putExtra("aspectY", 0); 
 
     intent.putExtra("outputX", 200); 
 
     intent.putExtra("outputY", 150); 
 
     intent.putExtra("return-data", true); 
 
     startActivityForResult(
 
       Intent.createChooser(intent, "Complete action using"), 
 
       PICK_FROM_GALLERY); 
 

 
    }

+0

большое спасибо за ваш ответ –

0

Стандартная практика для хранения изображения на каталог кэша приложений или где-либо еще в SD-карте, а затем сохранить только путь в таблице базы данных вместе с другими связанными данными для справки.