相关疑难解决方法(0)

片段中没有调用onActivityResult

托管此片段的活动onActivityResult在相机活动返回时调用.

我的片段开始一个结果的活动,其意图是发送给相机拍照.图片应用程序加载正常,拍照并返回.该onActivityResult然而,永远不会打.我设置了断点,但没有触发任何东西.一个片段可以onActivityResult吗?我想是因为它是一个提供的功能.为什么不被触发?

ImageView myImage = (ImageView)inflatedView.findViewById(R.id.image);
myImage.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(cameraIntent, 1888);
    }
});

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if( requestCode == 1888 ) {
        Bitmap photo = (Bitmap) data.getExtras().get("data");
        ((ImageView)inflatedView.findViewById(R.id.image)).setImageBitmap(photo);
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-activity

834
推荐指数
19
解决办法
37万
查看次数

来自Fragment和整理子Activity的startActivityForResult(),不会在Fragment中调用onActivityResult()

FirstActivity.Java有一个FragmentA.Java电话startActivityForResult(). SecondActivity.Java打电话,finish()onActivityResult永远不会被写入FragmentA.Java.

FragmentA.Java 码:

  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    // some code
    Intent i = new Intent(getActivity(), SecondActivity.class);
    i.putExtra("helloString", helloString);
    getActivity().startActivityForResult(i, 1);
  }

  @Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    getActivity();
    if(requestCode == 1 && resultCode == Activity.RESULT_OK) {
       //some code
    }
  }
Run Code Online (Sandbox Code Playgroud)

SecondActivity.Java 码:

  @Override
  protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       //some code
       Intent returnIntent = new Intent();
       returnIntent.putExtra("result", …
Run Code Online (Sandbox Code Playgroud)

android android-fragmentactivity

164
推荐指数
6
解决办法
12万
查看次数

onActivityResult()未在新的嵌套片段API中调用

我一直在使用Android包含在支持库中的新嵌套片段 API.

我面对嵌套片段的问题是,如果嵌套片段(即通过FragmentManager返回的by 已经添加到另一个片段的片段getChildFragmentManager())调用startActivityForResult(),onActivityResult()则不会调用嵌套片段的方法.但是,父片段onActivityResult()和活动onActivityResult()都会被调用.

我不知道我是否遗漏了有关嵌套片段的内容,但我没想到所描述的行为.下面是重现此问题的代码.如果有人能指出我正确的方向并向我解释我做错了什么,我将非常感激:

package com.example.nestedfragmentactivityresult;

import android.media.RingtoneManager;
import android.os.Bundle;
import android.content.Intent;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends FragmentActivity
{
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.getSupportFragmentManager()
            .beginTransaction()
            .add(android.R.id.content, new ContainerFragment())
            .commit();
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);

        // This is called
        Toast.makeText(getApplication(),
            "Consumed by activity",
            Toast.LENGTH_SHORT).show(); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-nested-fragment

76
推荐指数
4
解决办法
3万
查看次数