2016-12-12 7 views
1

私のonClickメソッドでは、カメラで写真を撮るための2つの新しいインテントと、ギャラリーからの画像を選択するための2つの新しいインテントを呼び出しました。ただし、アクティビティを開始する前に2つのインテントを許可するたびに、ダイアログで常にポップアップが許可されます。Androidはギャラリーまたはカメラショーオプションの画像を一緒に選択しました

Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(takePicture, 0); 

Intent pickPhoto = new Intent(Intent.ACTION_PICK, 
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
startActivityForResult(pickPhoto , 1); 

ギャラリーから画像を選択するオプションが表示されます。次に、画像をスワイプしてから、カメラを許可するオプションが表示されます。 1つのポップアップでどのように表示できますか?

答えて

2

は、次の操作を行うことができます....これはあなたのために働く

private void showPickImageDialog() { 
    AlertDialog.Builder builderSingle = new AlertDialog.Builder(MainActivity.this); 
    builderSingle.setTitle("Select One Option"); 

    final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(
      MainActivity.this, 
      android.R.layout.select_dialog_singlechoice); 
    arrayAdapter.add("Gallery"); 
    arrayAdapter.add("Camera"); 

    builderSingle.setNegativeButton(
      "cancel", 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }); 

    builderSingle.setAdapter(
      arrayAdapter, 
      new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        switch (which) { 
         case 0: 
          Intent pickPhoto = new Intent(Intent.ACTION_PICK, 
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
          startActivityForResult(pickPhoto, 1); 
          break; 

         case 1: 
          Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
          startActivityForResult(takePicture, 0); 
          break; 
        } 

       } 
      }); 
    builderSingle.show(); 
} 

希望を!

+0

お返事ありがとうございます!それは私の問題を解決した、ありがとう – JerryKo

+0

@ジェリーこんにちは!乾杯! –

関連する問題