2016-09-26 4 views
1

私は、ユーザーチームの画像を取得するための警告ダイアログを使用しています。そして、すでに開いているダイアログでイメージプレビューを表示したいと思います。表示されたダイアログの画像ビューを選択した画像に更新するにはどうすればよいですか?

私のダイアログが表示されている部分にイメージファイルを渡していますが、ダイアログを表示する方法はImageViewです。私はデータを通知できるアダプタを更新しようとしましたが、そのフラグメント

public void passingImage(Image image) { 
    testAdapter.notifyImage(image); 
} 

が、これは私の警告]ダイアログコード

public void showDialogForTeam(ChallengeData mData) { 
    this.mData = mData; 
    dialogForTeam = new Dialog(activity); 
    dialogForTeam.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialogForTeam.setContentView(R.layout.dialog_team_selection); 
    dialogForTeam.setTitle("Select Team"); 
    spinner = (Spinner) dialogForTeam.findViewById(R.id.spinner); 
    imgClose = (ImageView) dialogForTeam.findViewById(R.id.imageView); 


    RecyclerView.LayoutManager layoutManager5 = new LinearLayoutManager(getActivity()); 
    rvLogo = (RecyclerView) dialogForTeam.findViewById(R.id.rv_logo); 
    rvLogo.setHasFixedSize(true); 
    rvLogo.setLayoutManager(layoutManager5); 

    rvLogo.setAdapter(testAdapter); 
    btnUpload = (TextView) dialogForTeam.findViewById(R.id.btn_upload_icon); 
    tealLogo = (ImageView) dialogForTeam.findViewById(R.id.team_logo); 


    btnUpload.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      int permissionCheck = ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); 
      if (permissionCheck == PackageManager.PERMISSION_GRANTED) { 
       openGallery(); 

      } else { 
       Nammu.askForPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE, new PermissionCallback() { 
        @Override 
        public void permissionGranted() { 
         openGallery(); 

        } 

        @Override 
        public void permissionRefused() { 

        } 
       }); 
      } 

     } 
    }); 
    GridView gridView = (GridView) dialogForTeam.findViewById(R.id.grid_view); 
    // Instance of ImageAdapter Class 
    gridView.setAdapter(new ImageAdapter(activity, this)); 
    Spinner spinner1 = (Spinner) dialogForTeam.findViewById(R.id.spinner1); 
    final LinearLayout llMyteam = (LinearLayout) dialogForTeam.findViewById(R.id.ll_m_team); 
    final RecyclerView recyclerViewTeam = (RecyclerView) dialogForTeam.findViewById(R.id.rv_team); 
    String[] strings = new String[0]; 
    if (mData.getIsTeamcreater().equals("true")) { 
     strings = new String[]{"Join as Team Member", "Create Team"}; 
    } else 
     strings = new String[]{"Join as Team Member"}; 
    spinner.setAdapter(new ArrayAdapter<>(activity, R.layout.row_simple_text, strings)); 
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      if (parent.getItemAtPosition(position).toString().equals("Join as Team Member")) { 
       llMyteam.setVisibility(View.GONE); 
       recyclerViewTeam.setVisibility(View.VISIBLE); 
      } else { 
       llMyteam.setVisibility(View.VISIBLE); 
       recyclerViewTeam.setVisibility(View.GONE); 
      } 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 

     } 
    }); 
    spinner1.setAdapter(new ArrayAdapter<>(activity, R.layout.row_simple_text, strings)); 
    if (mData.getTeams() != null && mData.getTeams().size() > 0) { 
     RecyclerView.LayoutManager layoutManager4 = new LinearLayoutManager(activity); 
     recyclerViewTeam.setHasFixedSize(true); 
     recyclerViewTeam.setLayoutManager(layoutManager4); 
     JoinTeamChallengeAdapter allTeamAdapter = new JoinTeamChallengeAdapter(activity, mData.getTeams(), this); 
     recyclerViewTeam.setAdapter(allTeamAdapter); 
    } 

    imgClose.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      dialogForTeam.dismiss(); 
     } 
    }); 
    dialogForTeam.show(); 

} 

public void openGallery() { 
    ImagePicker.create(activity) 
      .folderMode(true) // folder mode (false by default) 
      .folderTitle("Folder") // folder selection title 
      .imageTitle("Tap to select") // image selection title 
      .single() // single mode 
      .limit(1) // max images can be selected (99 by default) 
      .showCamera(true) // show camera or not (true by default) 
      .imageDirectory("Camera") // directory name for captured image ("Camera" folder by default) 
      .start(9686); // start image picker activity with request code 
} 

あるMianActivity

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Log.e(TAG, "onActivityResult :" + requestCode); 
    if (requestCode == 9686) { 
     ArrayList<Image> images = data.getParcelableArrayListExtra(ImagePickerActivity.INTENT_EXTRA_SELECTED_IMAGES); 
     if (images.size() > 0 && images.size() == 1){ 
      image = images.get(0); 
      mainHomeFragment.passingImage(image); 
     } 

    } else if (requestCode == 9687) { 
     ArrayList<Image> images = data.getParcelableArrayListExtra(ImagePickerActivity.INTENT_EXTRA_SELECTED_IMAGES); 
     if (images.size() > 0 && images.size() == 1) 
      onPhotoReturned(images.get(0)); 
    } 

    super.onActivityResult(requestCode, resultCode, data); 

} 

答えて

0

ポイントの下のAndroid Developer Pageでは、サムネイルを取得すると、アクティビティの既存のImageViewにインテントでキャプチャした後に写真を追加する方法の例が表示されます。私はそれがあなたが探しているものであることを願っています。

EDIT:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     Bitmap imageBitmap = (Bitmap) extras.get("data"); 
     mImageView.setImageBitmap(imageBitmap); 
    } 
} 

見ての通り、あなたはビットマップを必要とするコマンドsetImageBitmap(image)を介して画像表示を変更することができます。それが助けにならない場合は、ImageView

+0

私はダイアログの画像ビューとダイアログに既に表示したいと考えています。 –

+0

このリンクは質問に答えるかもしれませんが、回答の必須部分ここで参照用のリンクを提供します。リンクされたページが変更された場合、リンクのみの回答は無効になります。私はすでに 'OnActivityResult'にImageオブジェクトを持っていますが、その質問は次のとおりです: - [レビューから](レビュー/低品質の投稿/13794831) –

+0

アドバイスのためにページからの必須コードを変更して追加しました@AdityaVyas-Lakhan –

関連する問題