栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android小实例-Activity之间数据交流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android小实例-Activity之间数据交流

Android小实例-Activity之间数据交流
  • 简介
  • 向下传递数据
    • 第一个活动与布局
    • 第二个活动与布局
    • 界面效果
  • 向上传递数据
    • 第一个布局与活动
    • 第二个活动与布局
    • 效果

简介

活动(Activity)之间数据传递是相互的,介绍了上一页面将数据传递到下一个页面和上下一个页面将数据返回给上一页面。

向下传递数据

先需要两个活动(Activity)和对应的布局文件。
首先首页布局文件只需要一个按钮

第一个活动与布局

        

java代码

package com.buxiaju.test3;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import com.buxiaju.test3.NewActivity;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {        
        super.onCreate(savedInstanceState);        
        setContentView(R.layout.activity_main);		
        //创建一个意图,准备跳到指定的活动页面		
        Intent intent = new Intent(this, NewActivity.class);		
        Bundle bundle = new Bundle(); //创建一个新包裹		
        //向包裹存入名为msg的字符串		
        bundle.putString("msg","今天很高兴");				
        intent.putExtras(bundle);//把快递包裹塞进意图中		
        Button bt = findViewById(R.id.send);		bt.setOnClickListener(new View.OnClickListener(){			
        @Override			
        public void onClick(View v){				
        startActivity(intent);				
        finish();//销毁当前页面			
            }		
        });		    
    
    }
}

第二个活动与布局

布局文件

	
    
 
package com.buxiaju.test3;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class NewActivity extends AppCompatActivity {	
    @Override   
     protected void onCreate(Bundle savedInstanceState) {        
         super.onCreate(savedInstanceState);        
         setContentView(R.layout.activity_new);		
         Bundle bundle = getIntent().getExtras();		//从上一个页面传来的意图中获取包裹
         String msg = bundle.getString("msg");		//从包裹中取出名为msg的内容
         TextView tv = findViewById(R.id.tv);		
         tv.setText(msg);		    
         }	
}
界面效果

首页

点击按钮后

向上传递数据

也是两个活动,两个布局

第一个布局与活动

布局


    
    	
    

Java代码

package com.buxiaju.test4;
import android.app.Activity;import android.content.Intent;
import android.view.View;import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
public class MainActivity extends AppCompatActivity {	
    private TextView tv;	
    private Button bt;	
    @Override	
    protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);		
    		setContentView(R.layout.activity_main);		
    		tv = findViewById(R.id.tv1);	    
    		bt = findViewById(R.id.bt1);		
    		//创建一个意图		
    		Intent intent = new Intent(this, NewActivity.class);		
    		bt.setOnClickListener(new View.OnClickListener() {
    					@Override			
    					public void onClick(View v) {
    									startActivityForResult(intent,0);
    					}		
    		  });	
    }	
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent intent){
			super.onActivityResult(requestCode, resultCode, intent);				
			if (intent != null && requestCode == 0 && resultCode == Activity.RESULT_OK){
							//从返回的意图中获取包裹			
							Bundle bundle = intent.getExtras();			
							//从包裹中获取数据			
							String msg = bundle.getString("msg");			
							tv.setText(msg);		
				}	
		}
}

第二个活动与布局
	

	

Java代码

package com.buxiaju.test4;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class NewActivity extends AppCompatActivity {	
    private Button bt;	
    @Override	
    protected void onCreate(Bundle savedInstanceState) {		
            super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_new);		
    		bt = findViewById(R.id.bt2);		
    		bt.setOnClickListener(new View.OnClickListener() {			
    		    @Override			
    		    public void onClick(View v) {
    		    				Intent intent = new Intent();				
    		    				Bundle bundle = new Bundle();								
    		    				bundle.putString("msg", "你好陌生人");				
    		    				intent.putExtras(bundle);				
    		    				setResult(Activity.RESULT_OK, intent);			 
    		    				finish();			
    		    }		
    	    });	
    	}
   }

效果

第一个页面


点击按钮

再次点击这个页面的按钮
会发现文本中的内容变了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871096.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号