当前位置: 首页 > 知识库问答 >
问题:

无法定义onActivityResult(int requestCode,int resultCode,Intent数据)

许承悦
2023-03-14

如何定义onActivityResult。下面是代码片段

public class MyAccount extends Fragment {
    private Button button;
    private Button button1;
    private Button remove;
    private Button change;
    private EditText editName;
    private EditText editGender;
    private EditText editAge;
    private EditText editCountry;
    private EditText editDesccription;
    private EditText editSports;
    private EditText editFood;
    private String apikey;
    private ImageView add;
    private static int RESULT_LOAD_IMAGE = 1;
    String val = null, imgpath=null;
    // Session Manager Class
    SessionManager session;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


        // Session class instance
        session = new SessionManager(getActivity().getApplicationContext());

        // get user data from session
        HashMap<String, String> user = session.getUserDetails();


        // apikey
        apikey = user.get(SessionManager.KEY_api);

        final LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.my_account_a, null);
        button = (Button) layout.findViewById(R.id.account);
        button1 = (Button) layout.findViewById(R.id.profile);
        remove = (Button) layout.findViewById(R.id.remove);
        change = (Button) layout.findViewById(R.id.change);
        editName = (EditText) layout.findViewById(R.id.editName);
        editGender = (EditText) layout.findViewById(R.id.editGender);
        editAge = (EditText) layout.findViewById(R.id.editAge);
        editCountry = (EditText) layout.findViewById(R.id.editCountry);
        editDesccription = (EditText) layout.findViewById(R.id.editDescription);
        editFood = (EditText) layout.findViewById(R.id.editFood);
        editSports = (EditText) layout.findViewById(R.id.editSports);
        add = (ImageView) layout.findViewById(R.id.add);

        // create bitmap from resource
        Bitmap bm = BitmapFactory.decodeResource(getResources(),
                R.drawable.profile_blank_xlarge);

        // set circle bitmap
        ImageView mImage = (ImageView) layout.findViewById(R.id.image);
        mImage.setImageBitmap(getCircleBitmap(bm));
        mImage.setTag("profile_blank_xlarge");

        new FetchOperation().execute();

        add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    post();
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
            }
        });

            if(!mImage.getTag().equals("profile_blank_xlarge")) {
                remove.setOnClickListener(new View.OnClickListener() {
                                              @Override
                                              public void onClick(View v) {
                                                  remove_image();
                                              }
                                          }

                );
            }
        else
            {
                remove.setEnabled(false);
            }
        change.setOnClickListener(new View.OnClickListener() {
                                      @Override
                                      public void onClick(View v) {
                                          change_image();
                                      }
                                  }

        );

        return layout;
    }

    //Functions for profile image



    private Bitmap getCircleBitmap(Bitmap bitmap) {
        final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
                bitmap.getHeight(), Bitmap.Config.ARGB_8888);
        final Canvas canvas = new Canvas(output);

        final int color = Color.RED;
        final Paint paint = new Paint();
        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
        final RectF rectF = new RectF(rect);

        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        paint.setColor(color);
        canvas.drawOval(rectF, paint);

        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);

        bitmap.recycle();

        return output;
    }

    // Function to remove Image
    public void remove_image()
    {

        // create bitmap from resource
        Bitmap bm = BitmapFactory.decodeResource(getResources(),
                R.drawable.com_facebook_profile_picture_blank_portrait);

        // set circle bitmap
        ImageView mImage = (ImageView) getView().findViewById(R.id.image);
        mImage.setImageBitmap(getCircleBitmap(bm));
        mImage.setTag("profile_blank_xlarge");

    }

    //Function to change image
    public  void  change_image()
    {
        Intent i = new Intent(
                Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

        startActivityForResult(i, RESULT_LOAD_IMAGE);

    }



    //Want to define onActivityResult here

共有1个答案

戚永福
2023-03-14

如果您只是调用startactivityforresult()函数,那么它将调用fragmentstartactivityforresult()函数,因为您是从它调用的。

因此,您需要重写片段中的onActivityResult()以接收其回调。

如果在活动中需要回调,则需要调用

getActivity().startActivityForResult()
 类似资料:
  • 问题内容: 我已经加载了内容模块,我得到的具体错误是: 有什么想法吗?我是从以下教程中获得的:http : //developer.android.com/guide/topics/ui/notifiers/notifications.html 问题答案: 更改此: 至 发生错误是因为在这种情况下,它引用的实例,但构造函数需要一个。您必须传递的上下文是对活动本身的引用,因此您必须使用显式访问它。

  • 我试图在checkbox的onClick方法中使用意图,但我得到的错误是方法startActivity未定义,并且构造函数意图(new View.OnClickListener等)也未定义。下面是我的代码:

  • 如果有人能帮助我,我会非常高兴,因为我是对象编程的新手。我的问题是:我正在编写一些带有蓝牙通信的应用程序。我编写了所有方法并在MainActivity.class.中成功地在设备之间连接和传输数据我也有一个SearchActivity.class它显示了List上范围内的所有设备,因此用户可以选择一个。然后将设备通过Intent传递到Main Active,从那里开始连接。但由于我的应用程序的性质

  • 我正在写一个程序,用Android系统发送短信。单击“发送”按钮后,我想获得消息的状态,如“已发送”、“已送达”。这部分很好用。问题是,我想得到一个电话号码,信息被发送到该号码,并传送到内部广播。这是必要的,因为SMS可以同时发送给多个用户。我该怎么做?我试着把“不”放在意图上,并把它放进广播接收机,但它不起作用。以下是示例代码: 和一个广播接收器: 仅供参考,第一个代码在通过不同电话号码的循环中

  • 问题内容: 我在运行Android单元测试时遇到问题。尝试运行简单测试时遇到此错误。 这是日志: Blockquote java.lang.RuntimeException:无法解析以下活动:Intent {act = android.intent.action.MAIN flg = 0x10000000 cmp = com.wsandroid.Activities / .SplashActivi

  • 我想从接收正常文件路径,如下所示: 这个文件也存在,但我不能得到它。我在这里看到了一些建议获得路径的问题,如下所示: 但此方法返回以下异常: 因此,我在这里收到的: 如何将文件转换为字符串: