2017-09-13 4 views
0

Lorsque je démarre mon application, il me fait d'abord sélectionner une photo. Au lieu de cela, je veux que cela me mène à l'écran principal, où je peux sélectionner une photo quand je veux. Il est déjà programmé pour sélectionner une photo lorsque je clique sur l'image. Et juste pour clarifier, le problème est qu'il me oblige à sélectionner une photo quand je commence l'application, pas à tout moment autreMon application Android est d'abord me faire sélectionner une photo. Au lieu de cela, je veux que mon application m'amène d'abord à la page principale

public void getPhoto() { 
     Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
     startActivityForResult(intent,1); 
    } 

     @Override 
     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 
      super.onRequestPermissionsResult(requestCode, permissions, grantResults); 

      if (requestCode ==1){ 
       if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED);{ 
       getPhoto(); 
       } 
      } 
     } 

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

if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ 
       requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1); 
      } else { 
       getPhoto(); 
      } 

     } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 


     if (requestCode ==1 && resultCode == RESULT_OK && data != null) { 
      Uri selectedImage = data.getData(); 

      try { 
       Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage); 


       ImageView imageView2 = (ImageView) findViewById(R.id.imageView2); 
       imageView2.setImageBitmap(bitmap); 


      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    public void click(View view) { 
     if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ 
      requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1); 
     } else { 
      getPhoto(); 
     } 
    } 
} 
+5

supprimer l'appel 'getPhoto()' de 'onCreate()'? – Droidman

Répondre

1

Quasiment comme le dit Droidman.

if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ 
      requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1); 
     } else { 
      getPhoto(); 
     } 

Vous êtes en train de vérifier les autorisations. Si vous avez la permission correcte, vous appelez getPhoto() immédiatement dans votre onCreate. Supprimer cet appel et tout ira bien.