android使用startActivityForResult跳转Activity并回传值

来源:互联网 发布:淘宝问卷调查报告 编辑:程序博客网 时间:2024/06/18 08:38

Activity A

final int cityresult = 1;//必须使用finalTextView textview = (TextView)findViewById(R.id.txt_city);textView.setOnClickListener(new chosecityClicklis());class chosecityClicklis implements OnClickListener {        @Override        public void onClick(View v) {            // TODO Auto-generated method stub            Intent intent = new Intent(ActivityA.this,                    ActivityB.class);            intent.putExtra("cityname", textView.getText().toString());            startActivityForResult(intent, GetCityResult);        }    }public void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        switch (requestCode) {        case cityresult:                        textView.setText(data.getStringExtra("city"));            break;        }    }

ActivityB

String cityname;Intent intent = getIntent();        cityname = intent.getStringExtra("cityname");//传值进来,防止返回上个Activity传的值为空        class backClickListener implements OnClickListener {        @Override        public void onClick(View v) {            // TODO Auto-generated method stub            Intent i = getIntent();            i.putExtra("city", cityname);            setResult(1, i);            finish();        }    }    //虚拟键上的返回键    public void onBackPressed() {        //super.onBackPressed();不需要这个,不然ActivityA不能接收到返回去的值        Intent i = getIntent();        i.putExtra("city", cityname);        setResult(1, i);        finish();    }
0 0
原创粉丝点击