意图传递变量故障

时间:2018-06-12 10:01:40

标签: java android if-statement android-intent

在我的应用程序中,我试图为用户提供两个功能。一个是上传带有图片的帖子,另一个是上传没有图片的帖子。为此,我创建了Strings nonselected_image和selected_image(或selected_bitmap)。如果用户按下其中一个TextViews,其中一个字符串将在intent中传递。当用户希望创建非照片帖时,它的效果很好,但当他想要创建一张带照片的照片时,会有两个帖子出现,一个有照片而另一个没有。我错了什么?这是我的代码。

将意图和字符串发送到下一个活动

   TextView nextScreen = (TextView) view.findViewById(R.id.tvNext);
        nextScreen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d(TAG, "onClick: navigating to the final share screen.");

                if (isRootTask()) {
                    Intent intent = new Intent(getActivity(), NextActivity.class);
                    intent.putExtra(getString(R.string.selected_image), mSelectedImage);
                    startActivity(intent);
                } else {
                    Intent intent = new Intent(getActivity(), AccountSettingsActivity.class);
                    intent.putExtra(getString(R.string.selected_image), mSelectedImage);
                    intent.putExtra(getString(R.string.return_to_fragment), getString(R.string.edit_profile_fragment));
                    startActivity(intent);
                    getActivity().finish();
                }

            }
        });

       noPhoto.setOnClickListener(new View.OnClickListener(){
            public void onClick (View v) {

                mSelectedImage = null;
                Intent intent = new Intent(getActivity(), NextActivity.class);
                intent.putExtra(getString(R.string.nonselected_image), nonSelectedImage);
                startActivity(intent);

            }
        });

接收意图并采取相应的行动以传递变量

  public void onClick(View v) {
                Log.d(TAG, "onClick: navigating to the final share screen.");
                //upload the image to firebase
        //        Toast.makeText(NextActivity.this, "Attempting to upload new photo", Toast.LENGTH_SHORT).show();
                String caption = mCaption.getText().toString();

                if(intent.hasExtra(getString(R.string.selected_image))){
                    imgUrl = intent.getStringExtra(getString(R.string.selected_image));
                    Toast.makeText(NextActivity.this, "Attempting to upload a normal photo", Toast.LENGTH_SHORT).show();
                    mFirebaseMethods.uploadNewPhoto(getString(R.string.new_photo), caption, imageCount, imgUrl,null);
                }
                else if(intent.hasExtra(getString(R.string.selected_bitmap))){
                    bitmap = (Bitmap) intent.getParcelableExtra(getString(R.string.selected_bitmap));
                    Toast.makeText(NextActivity.this, "Attempting to upload a new bitmap", Toast.LENGTH_SHORT).show();
                    mFirebaseMethods.uploadNewPhoto(getString(R.string.new_photo), caption, imageCount, null,bitmap);
                }
                else if(intent.hasExtra(getString(R.string.nonselected_image)));{
                    Toast.makeText(NextActivity.this, "Attempting to upload new photo", Toast.LENGTH_SHORT).show();
                    imgUrl = intent.getStringExtra(getString(R.string.nonselected_image));
                  mFirebaseMethods.uploadNoPhoto(getString(R.string.new_photo), caption, imageCount, imgUrl, null); // HERE IS THE ERROR

                }

0 个答案:

没有答案