【问题标题】:New activity from intent来自意图的新活动
【发布时间】:2016-05-10 20:50:41
【问题描述】:

我有带有用于图库的按钮的片段

@Override
public void onClick(View v) {
    switch (v.getId()){
        //если выбрали галерею
        case R.id.b_gallery:
            Intent intentGallery = new Intent(Intent.ACTION_PICK);
            intentGallery.setType("image/*");
            startActivityForResult(intentGallery, GALLERY_INTENT_REQUEST_CODE);
        break;

然后我选择任何照片并接收 URI。我必须在新活动中展示所选照片。在我做的片段中:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent imageReturned) {
    super.onActivityResult(requestCode, resultCode, imageReturned);
    switch (requestCode) {

        //если результат пришел от галереи
           case GALLERY_INTENT_REQUEST_CODE:
            if (resultCode == RESULT_OK) {
                Uri selectedImage = imageReturned.getData();
                try {
                    bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), selectedImage);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                Intent last_intent_gallery = new Intent(getView().getContext(), ViewPhoto.class);
                last_intent_gallery.putExtra("fotka", bitmap);
                startActivity(last_intent_gallery);
            }
            break;

在我做的新活动中:

public class ViewPhoto extends Activity {

    //public final static String THIEF = ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view_photo_layout);

        CustomImageVIew imageView = (CustomImageVIew)findViewById(R.id.customImageVIew);

        Intent intent = getIntent();
        Bitmap fotka = (Bitmap) intent.getExtras().get("fotka");
        imageView.setBitmap(fotka);

    }

但是在我选择照片库后,我就关闭了,我又得到了我的片段。 我的决定在哪里?

我的 AndroidManifest 有:

<activity android:name=".fragments.ViewPhoto"
    android:configChanges="orientation|screenSize">
    <intent-filter>
        <action android:name="android.intent.action.DEFAULT"/>
    </intent-filter>
</activity>

【问题讨论】:

  • 日志没有错误?
  • @OussemaAroua 不,只是关闭画廊
  • 控件是否进入onActivityResult
  • 对不起,我不明白你的问题。你说的是什么控件?

标签: android android-fragments android-intent android-gallery


【解决方案1】:

结果和获取结果的开始活动的请求代码不是相同的常量。查看常量的名称。其中一个有“照片”。一个有“画廊”。使用相同的代码来请求和获取结果。

编辑: 我现在根据您在下面的评论看到您的编辑。查看您对 onActivityResult 的调用是否未被活动拦截。通常是这样。在这种情况下,在您的活动中将调用转发到您的片段方法。或者只是覆盖活动中的方法,以便它实现超级。这将调用片段方法。使用片段开始活动以获取结果是一个常见问题。做一些记录。查看它是否调用片段中的方法。我的猜测是..它没有。这就是为什么不采取任何行动的原因。

【讨论】:

  • 发帖时出错。我编辑了我的代码。对不起
  • 我现在看到你的编辑了。查看您对 onActibityResult 的调用是否未被活动拦截。通常是这样。在这种情况下,在您的活动中将调用转发到您的片段方法。或者只是覆盖活动中的方法,以便它实现超级。这将调用片段方法。使用片段开始活动以获取结果是一个常见问题。做一些记录。查看它是否调用片段中的方法。我的猜测是..它没有。这就是为什么不采取任何行动的原因。
  • 哦,我可以向您展示我的代码的某些部分,它们可以帮助您帮助我吗?如果是我可以展示的部分?
  • 你的代码就足够了。我建议使用日志语句来查看您在片段中调用 onActivityResult 的方法。结果是什么......您将通过正确的日志记录看到问题所在。可能是您的方法从未被调用...或者结果不正确...
  • 我仍然不明白我必须改变什么
猜你喜欢
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
  • 2020-12-04
相关资源
最近更新 更多