博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android成长(二)——两个页面交互
阅读量:4262 次
发布时间:2019-05-26

本文共 4027 字,大约阅读时间需要 13 分钟。

      之前,我们讲到了学习Android需要的开发环境的搭建,今天我们来做一个小例子,来看一下Android是如何实现页面之间的参数传递的。

一、前端页面配置

1、activity_main页面

2、second页面

3、配置AndroidManifest.xml

二、activity编写

1、MainActivity类

public class MainActivity extends Activity {
//声明按钮控件 private Button mainButton=null; //本页面传递时的按钮btn的标志码 private final static int request_Code=11; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置显示的页面 setContentView(R.layout.activity_main); //根据配置的按钮id找到按钮控件 mainButton=(Button)findViewById(R.id.btn); //为按钮设置单击的事件监听器 mainButton.setOnClickListener(listener); } //单击的事件监听器 private OnClickListener listener=new OnClickListener() { @Override public void onClick(View arg0) { //Intent是系统各组件之间进行数据传递的数据负载者,即通信使者 Intent intent=new Intent(); //设置页面转向 intent.setClass(MainActivity.this,SecondActivity.class); //设置传递参数 intent.putExtra("str", "你好"); //startActivity(intent);不需要接收返回值时使用 //接收返回值,request_Code代表当前按钮btn的请求吗 startActivityForResult(intent, request_Code); } }; //重写接收返回值得方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { //如果请求码等于按钮btn的标志码,则继续处理 if(requestCode==request_Code) { //如果结果码,等于second页面中按钮btnButton的标志码,则继续处理 if(resultCode==SecondActivity.result_Code) { //从传回的数据中取得bundle Bundle bundle=data.getExtras(); //得到返回值 String string=bundle.getString("back"); //显示返回值 Toast.makeText(MainActivity.this, string, Toast.LENGTH_LONG).show(); } } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}

2、SecondActivity 类

public class SecondActivity extends Activity {
//声明控件 private TextView textView; private Button btnButton=null; //此页面按钮btnButton的标志码 public final static int result_Code=1; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //调用并显示页面2 setContentView(R.layout.second); //得到intent通信使者 Intent intent=getIntent(); //得到bundle,存放数据的对象,类似于map Bundle bundle=intent.getExtras(); //得到传过来的数据 String str=bundle.getString("str"); //得到textView控件 textView=(TextView)findViewById(R.id.secondtxt); //显示传过来的数据 textView.setText(str); //得到按钮,设置监听器 btnButton=(Button)findViewById(R.id.secondbtn); btnButton.setOnClickListener(listener); } //单击事件监听器 private OnClickListener listener=new OnClickListener() { @Override public void onClick(View arg0) { //创建通信使者 Intent intent =new Intent(); //设置返回信息 intent.putExtra("back", "我崔晓光又回来了!!"); //设置返回码和通信使者 setResult(result_Code,intent); //完成,关闭当前页面并返回 finish(); } };}

总结:

      这里我们学会了在不同的页面之间传递参数。从中我们学到了intent和bundle对象,他们是参数传递的核心对象。在代码中我们多次使用到了标志码——requestCode和resqonseCode,我们要充分理解这两个码,其实就是对一个按钮的标志,根据这个我们可以处理同一个页面不同按钮的不同请求。通过这个小例子,希望大家对android开发有一定了解,为以后开发大型项目打好基础。

转载地址:http://lumei.baihongyu.com/

你可能感兴趣的文章
排序3:插入排序(普通插入排序 + 折半插入排序 + 链表插入排序 + 希尔排序)
查看>>
排序4:普通归并排序
查看>>
排序4:多路归并排序之预备:胜者树与败者树
查看>>
浮华背后与我的路-----关于华为裁员
查看>>
二维有序数组查找
查看>>
有序数组的旋转数组的最小值
查看>>
单向链表的倒数第k个节点
查看>>
单向链表逆序
查看>>
两个有序链表合并
查看>>
判断一个二叉树是否是另一个二叉树的子树
查看>>
二叉树的镜像(反转)
查看>>
二叉树的深度
查看>>
判断一个二叉树是否是AVL树
查看>>
数组中连续子数组的和的最大和
查看>>
字符串的全排列
查看>>
两个相交的单向链表求交点
查看>>
归并排序
查看>>
寻找无序数组中的全部降序对
查看>>
寻找字符串里第一个只出现过一次的字符
查看>>
消息id乱序接收但顺序发送问题
查看>>