android intent的跳转,页面传值
来源:互联网 发布:人工智能高清在线观看 编辑:程序博客网 时间:2024/06/05 05:23
在android中页面的跳转跟传值是非常重要的内容,所以不会的同学还是要用点心去多打两次。没有什么问题是打一遍代码不能解决如果有的话,那就是n+1遍的问题。
首先我们去看一篇博客的时候,最好先看下博客有哪些你没见过的知识点,然后边看边百度,不要看到博客里面的内容没见过,就觉得很难,开始烦躁没有心情去慢慢看下去。
好,首先 我们要 知道 Intent Bundle OnActivityResult 的相关知识,才能更加轻松的看完。
我们要实现的效果是 a 跳转到b,在把内容传到b界面。好,现在来开始写我们的代码了。(突然发现,不用黑体写代码,自己瞬间都变得萌萌哒了)。
首先我们来用Bundle实现两个页面之间的跳转,A页面跳转到B页面。
这是a页面,当我们按钮button的时候,进行跳转到button页面,并且将我们需要传递的东西,通过Bundle数据携带包通过key Value的形式来传递(就是一个钥匙去开这把锁)。
<strong>package com.example.bundle;import android.support.v7.app.ActionBarActivity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends ActionBarActivity { private Button button; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent=new Intent();</strong>
<strong> //这是数据携带包,后面的onActivityResult方式也会用到这种方式来进行值得传递Bundle bundle=new Bundle();bundle.putString("key", "value");intent.putExtras(bundle);</strong>
<strong> //设置我们需要前往的页面(本页面,目标页面)intent.setClass(MainActivity.this, activity.class);</strong>
<strong> //启动ac,将我们刚刚绑定数据的数据包放进去,等会页面进行跳转的时候,也会把他携带过去startActivity(intent);}}); } }</strong>
<strong>接下来我们看看 B页面 他是如何进行数据的接受的。 其实说到底 也就是两行代码的时候 我们通过解包获取数据 在把我们包里面的东西放在textview上面显示出来</strong>
<div><strong>package com.example.bundle;</strong></div><div><strong></strong></div><div><strong>import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.ActionBarActivity;import android.widget.TextView;</strong></div><div><strong></strong></div><div><strong>public class activity extends ActionBarActivity{ private TextView textview1; protected void onCreate(@Nullable Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity2); textview1=(TextView) findViewById(R.id.textview1);</strong></div><div><strong> Bundle myBundle=this.getIntent().getExtras(); String myText=myBundle.getString("key"); textview1.setText(myText); }}</strong></div><strong></strong>
在我们写页面跳转的时候千万不要忘记在fest里面经行配置activity哦
布局很简单我们就不把布局贴出来 我在下面 会把那个demo的链接贴出来的。
下面我们开始用onActivityResult配合Bundle来进行我们的数据传递
还是实现一样的功能从a跳转到b并且传递内容。
a页面代码。我会故意把这里的命名写的很烂,这样你们要看懂就需要更加用心的去看代码了。嘻嘻。
package com.example.onactivityresult;import android.support.v7.app.ActionBarActivity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends ActionBarActivity { private EditText tet; private Button btn; private TextView view; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=(Button) findViewById(R.id.btn); tet=(EditText) findViewById(R.id.tet); view=(TextView) findViewById(R.id.view); btn.setOnClickListener(new OnClickListener() {public void onClick(View v) {Intent intent=new Intent();String str= tet.getText().toString();intent.putExtra("textView_Name", str); //设置启动监听返回值的activity,并请求请求码 requestcodeintent.setClass(MainActivity.this, sendActivity.class);
//这个1 很关键,这是他们在同一条船上的标识,那边接受数据 key 值要对 标识符要对,不然接收不到数据的startActivityForResult(intent, 1);}}); } @Override //传入请求码,返回码,intent protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub if (requestCode==1&&resultCode==1) {Bundle bundle=data.getExtras();String strResult=bundle.getString("result");Toast.makeText(MainActivity.this, strResult, 1).show();} } //保存activity在onstop之前执行 @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); String ContentString=tet.getText().toString(); outState.putString("sava", ContentString); }}
a跳转到B页面,b接受a传递过来的数据,大概代码跟上面的bundle差不多就不再啰嗦写注释了
package com.example.onactivityresult;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class sendActivity extends Activity { private Button buttonContent; private TextView textViewContent; private EditText textContent;protected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.secondactivity);buttonContent=(Button) findViewById(R.id.buttonContent);textViewContent=(TextView) findViewById(R.id.textViewContent);textContent=(EditText) findViewById(R.id.textContent);Intent intent=getIntent();Bundle bundle=intent.getExtras();String strContentString=bundle.getString("textView_Name");textViewContent.setText(strContentString);buttonContent.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent =new Intent();intent.putExtra("sendActivity", textContent.getText().toString());setResult(1, intent);finish();}});}
DEMO下载链接:Bundle跳转传值
0 0
- android intent的跳转,页面传值
- Android intent页面跳转
- Intent 向导 android页面的跳转
- Android学习-Intent实现页面的跳转
- Android Intent实现页面跳转和传值
- android 页面跳转(intent)
- Android页面跳转Intent使用
- Intent实现页面跳转和传值
- Intent实现页面跳转和传值
- Intent实现页面的跳转
- Android Intent机制实现页面跳转的用法
- android自学 intent 页面跳转的两种方法
- Android中Intent的应用(二)--在进行页面跳转的同时传值
- 跳转,Intent跳转页面
- android基础之页面间跳转传值,用Bundle+Intent
- Android学习之Intent实现页面跳转
- Android使用Intent实现页面跳转
- android页面的跳转以及传值
- 菜鸟的Java之旅--JVM
- scala学习之apply
- ZooKeeper学习第一期---Zookeeper简单介绍
- QDataStream和QByteArray
- 深入理解Java:SimpleDateFormat安全的时间格式化
- android intent的跳转,页面传值
- Java compiler level does not match the version of the installed Java project facet.
- Unix & Linux笔记(17)
- 字符串的旋转问题
- 基于物理渲染的理论基础
- node中的path模块
- Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器)
- Leetcode no. 152
- 在线教育的心得