第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

當(dāng)我嘗試在 recyclerview 上顯示從相機(jī)拍攝的圖像時(shí),圖像出現(xiàn)多行

當(dāng)我嘗試在 recyclerview 上顯示從相機(jī)拍攝的圖像時(shí),圖像出現(xiàn)多行

慕標(biāo)5832272 2023-03-09 17:08:33
我正在開發(fā)一款尋寶游戲應(yīng)用程序,該應(yīng)用程序會(huì)在回收站視圖中顯示要拍攝的物品列表。該列表是從 Firebase 加載的。有一個(gè) onClickListener,因此當(dāng)單擊列表中的一個(gè)項(xiàng)目時(shí),它會(huì)打開相機(jī),然后您拍照,我想在所選項(xiàng)目旁邊顯示圖像?,F(xiàn)在,當(dāng)我拍照時(shí),它會(huì)在回收視圖中顯示在多行上。例如,如果我選擇列表中的第 0 項(xiàng)并拍照,則該圖片將同時(shí)顯示在列表中的第 0 項(xiàng)和第 11 項(xiàng)上。我試圖讓它只顯示在所選項(xiàng)目上。我在添加圖像后嘗試使用 adapter.notifyDataSetChanged() 和 adapter.notifyItemChanged(tmpPosition) 但它們都在多行上顯示圖像。我知道只有列表中的一項(xiàng)得到更新。我現(xiàn)在的做法是創(chuàng)建一個(gè)名為 tmpPosition 的全局 int 變量。當(dāng)您單擊列表中的項(xiàng)目時(shí),我將 tmpPosition 設(shè)置為等于所選項(xiàng)目的索引。然后在 onActivityResult 中,我使用以下方法設(shè)置圖像:scavengerHuntItemsList.get(tmpPosition).setScavengerHuntImage(imageTaken);adapter.notifyDataSetChanged();從我的 MainActivity 這是打開相機(jī)的 onClickListener     ((ScavengerHuntRecyclerAdapter) dapter).setOnItemClickListener(new      ScavengerHuntRecyclerAdapter.ClickListener() {                @Override                public void onItemClick(int position, View v) {                    //Here I am saving the position of the item so later I can update the correct index in the list                    tmpPosition = position;                    dispatchTakePictureIntent();                }            });            scavengerHuntMainRecyclerView.setAdapter(adapter);        }我的相機(jī)來自 MainActivityprivate void dispatchTakePictureIntent() {    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {        File photoFile = null;        photoFile = createPhotoFile();        if (photoFile != null) {            pathToFile = photoFile.getAbsolutePath(); //gets the path to the image            Uri photoURI = FileProvider.getUriForFile(ScavengerHuntMainActivity.this, "com.example.test", photoFile);            takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);        }    }}
查看完整描述

1 回答

?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

發(fā)生這種情況是因?yàn)镽ecyclerView重用了它的視圖(項(xiàng)目/單元格)。單元格 1 的內(nèi)容因此在單元格 11 中重復(fù)使用,導(dǎo)致照片出現(xiàn)多次。


這可以通過清除內(nèi)容來解決ImageView。


if (currentItem.getScavengerHuntImage() != null) {

        scavengerHuntViewHolder.scavengerHuntLayoutImageView.setImageBitmap(currentItem.getScavengerHuntImage());

        Log.d("in adapter UPDATED POS", "position  =  " + i);

    } else {

scavengerHuntViewHolder.scavengerHuntLayoutImageView.setImageResource(android.R.color.transparent);

//or

//scavengerHuntViewHolder.scavengerHuntLayoutImageView.setImageBitmap(null);


查看完整回答
反對 回復(fù) 2023-03-09
  • 1 回答
  • 0 關(guān)注
  • 102 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號