Intent返回数据给上一个活动<IntentputExtra>

1.新建项目<IntentputExtra>
2.在layout目录下,在first_layout.xml中添加按钮Button1
3.在layout目录下,新建second_layout.xml,并添加按钮Button2
4.在Java目录下,在MainActivity.java中,加载布局,使用startActivityForResult方法,数据可以返回给上一个活动
修改主活动的方法onCreate
5.在Java目录下,新建SecondActivity.java,并加载布局,  当传递到活动MyActivity2中,修改其onCreate方法
6.在AndroidManifest.xml下,注册2个活动,并将MainActivity作为主活动
代码如下:
layout——>activity_main.xml(2)
<Button
    android :id= "@+id/button1"
    android :layout_width= "match_parent"
    android :layout_height= "wrap_content"
    android :text= "myButton1"  />
layout——>second_layout.xml(3)
<Button
    android :id= "@+id/button2"
    android :layout_width= "match_parent"
    android :layout_height= "wrap_content"
    android :text= "myButton2"  />
java——>MainActivity .java(4)
public class MainActivity  extends AppCompatActivity {

    @Override
    protected void  onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState) ;
        requestWindowFeature(Window. FEATURE_NO_TITLE) ;
        setContentView(R.layout. activity_main) ;

        Button button1=(Button)findViewById(R.id. button1) ;
        button1.setOnClickListener( new View.OnClickListener() {

            public void  onClick(View view) {
//              //——下面返回数据给上一个活动
                //跳转到活动MyActivity2
                //第一个参数:上下文,第二个参数:目标活动类
                Intent intent =  new Intent(MainActivity. this,SecondActivity. class) //显式Intent
                //向活动MyActivity2传递数据
                intent.putExtra( "info" "我来自活动1") ;
                //启动活动
                startActivityForResult(intent 0) ;
            }
        }) ;
    }
    /**
     * 接受活动返回的数据,该方法对应于startActivityForResult(intent, 0)方法,请求码只要是唯一值就好,这里传入了0
     * requestCode:请求码
     * resultCode:返回数据时的处理结果
     * data:返回数据的Intent
     */
    protected void  onActivityResult( int requestCode , int resultCode Intent data) {
        //进行判断
        if( == requestCode && resultCode ==  RESULT_OK){
            //获取数据
            String  feedBack = data.getStringExtra( "feedBack") ;
            Toast. makeText(getApplicationContext() feedBack Toast. LENGTH_SHORT).show() ;
        }
    }
}
java——>SecondActivity .java(5)
public class SecondActivity  extends Activity {
    @Override
    protected void  onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState) ;
        //隐藏标题栏
        requestWindowFeature(Window. FEATURE_NO_TITLE) ;
        //加载自定义布局文件 activity2_my.xml
        setContentView(R.layout. second_layout) ;

        //接受活动1传递来的数据
        Intent intent = getIntent() ;
        String  info = intent.getStringExtra( "info") ;
        //即获取主活动传递来的数据,使用Toast显示
        Toast. makeText(getApplicationContext() info Toast. LENGTH_SHORT).show() ;


        //——为Button2添加点击监听事件:创建一个Intent,回传数据给主活动,同时销毁当前活动。使用setResult方法回传数据。
        Button button2 = (Button) findViewById(R.id. button2) ;
        //为Button2添加点击监听事件
        button2.setOnClickListener( new View.OnClickListener() {
            @Override
            public void  onClick(View v) {
                //构建一个Intent 返还数据,创建一个Intent,回传数据给主活动,同时销毁当前活动。使用setResult方法回传数据。
                Intent intent2 =  new Intent() ;
                intent2.putExtra( "feedBack" "我来自活动2,我已经收到了你的信息,这是我给你的反馈!") ;
                setResult( RESULT_OK intent2) //返还数据
                finish() ; //销毁当前活动
            }
        }) ;
    }
      //需要注意的是,用户按下back时也可以返回,因此在活动MyActivity2中还需要重写onBackPressed方法
      public void  onBackPressed() {
        //构建一个Intent 返还数据
        Intent intent2 =  new Intent() ;
        intent2.putExtra( "feedBack" "我来自活动2,我已经收到了你的信息,这是我给你的反馈!") ;
        setResult( RESULT_OK intent2) //返还数据
        finish() ; //销毁当前活动
    }

}
manifests——> AndroidManifest.xml(6)   
<activity  android :name= "com.administrator.intentputextra.MainActivity"
    android :label= "@string/app_name" >
    <intent-filter>
        <action  android :name= "android.intent.action.MAIN"  />
        <category  android :name= "android.intent.category.LAUNCHER"  />
    </intent-filter>
</activity>
<activity  android :name= "com.administrator.intentputextra.SecondActivity" ></activity>

结果如下:点击button2或返回键的时候会返回到button1,并提示……










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值