onActivityResult方法不被称为Android

前端之家收集整理的这篇文章主要介绍了onActivityResult方法不被称为Android前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将数据从儿童活动发送给父母.但是不知何故,onActivityResult(..)没有被调用.这里是代码

家长活动

selectedText.setOnTouchListener(new OnTouchListener() {



    public boolean onTouch(View v,MotionEvent event) {
                    if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
                        Intent intent = new Intent(Parents.this,Child.class);
                        startActivityForResult(intent,1);
                    }
                    return true;
                }
            });


        @Override
        protected void onActivityResult(int requestCode,int resultCode,Intent data) {
            switch (requestCode) {
            case 1:
                if (resultCode == RESULT_OK) {
                    if (data.hasExtra("selText")) {
                        selectedText.setText(data.getExtras().getString(
                                "selText"));

                    }
                    break;
                }
            }

子活动:我可以看到setResult()中设置的选定值.但是在孩子活动完成之后,它不会回到父母的活动.

textListView.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0,View arg1,int myItemInt,long arg3) {
                selectedFromList =(String) (textListView.getItemAtPosition(myItemInt));
                Intent data = new Intent();
                data.putExtra("selText",selectedFromList);
                setResult(RESULT_OK,data);
                finish();
            }
        });

解决方法

对于遇到同样问题的人,不能接收onActivityResult的症状,以下情况可能会导致此问题.

检查你正在使用startActivityForResult(),不要使用startActivity().>如果你用overBackPressed方法做一些事情,super.onBackPressed();必须定位在最后的方法,而不是在第一行. (我的情况下花5个小时)>删除android:launchMode =“singleInstance”在清单或等效参数中创建一个意图.>在被调用者活动的清单中删除noHistory =“true”.>检查setResult()是否错过.> finish()被调用关闭活动.使用finishActivity()来关闭调用者的活动.>使用requestCode超过零.负值不起作用

原文链接:https://www.f2er.com/android/310809.html

猜你在找的Android相关文章