簡體   English   中英

為什么其他語句未初始化?

[英]Why else statement is not initializing?

我想在使圖像描述可見的同時隱藏Some ImageButton。 但是,如果語句未按預期運行,則為其他情況。

OnCreate:

    ImageView thumbnail;
    ImageButton addImage ,removeImage;
    EditText description;

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

            Log.d(TAG, "onCreate: Started");

            thumbnail = findViewById(R.id.thumbnail);
            addImage = findViewById(R.id.addImage);
            removeImage = findViewById(R.id.removeImage);
            description = findViewById(R.id.description);


            setupToolbar();
            setupBodyEditor();
            addThumbnail();
        }

addThumnail:

  private void addThumbnail() {


    if ( thumbnail.getDrawable()== null)
    {
        addImage.setVisibility(View.VISIBLE);
        removeImage.setVisibility(View.GONE);
        description.setVisibility(View.GONE);
    }
    else
    {
        addImage.setVisibility(View.GONE);
        removeImage.setVisibility(View.VISIBLE);
        description.setVisibility(View.VISIBLE);
    }

    thumbnail.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            removeImage.setVisibility(View.VISIBLE);
            addImage.setVisibility(View.GONE);
        }
    });

    addImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select Picture"),5);
        }
    });

    removeImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            thumbnail.setImageDrawable(null);
        }
    });

}

onActivityResult:

 if (requestCode== 5  && resultCode == Activity.RESULT_OK && data != null && data.getData() != null)
        {
            try {
                final Uri imageUri = data.getData();
                final InputStream imageStream = getContentResolver().openInputStream(imageUri);
                final Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
                thumbnail.setImageBitmap(selectedImage);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                Toast.makeText(mContext, "Something went wrong", Toast.LENGTH_LONG).show();
            }
        }
 else if (resultCode == RESULT_CANCELED){
            Toast.makeText(mContext, "No Image Selected",Toast.LENGTH_LONG).show();
        }

嘗試對變量進行命名不同,但沒有任何效果。

即使Thumbnail ImageView包含圖像,它仍會顯示addImage按鈕,並且描述也不可見。

您需要在代碼中使用setImageDrawable ImageView始終為null。

setImageDrawable(getResources().getDrawable(R.drawable.icon));

據我所知,添加圖像后(立即)不要更改按鈕的可見性。 僅當調用onCreate方法時,更改才會應用。

按照Activity Lifecylce如果這僅僅是做Activity啟動(初始或之后的過程中已被殺死)。

要解決您的問題,您將必須觸發addImageremoveImagedescription元素的可見性更改以及縮略圖的設置(從onActivityResult方法內部)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM