当前位置: 首页 > news >正文

临沂外贸网站建设/今天的新闻最新消息

临沂外贸网站建设,今天的新闻最新消息,wordpress 被攻击,扁平化wordpress主题最近在学习安卓&#xff0c;所以记录下自己学习的点滴。 我的理解就是每个activity就是类似iOS中的Controller. 在iOS中&#xff0c;我们控制器传值的方式也是各种各样。 下面就介绍下在安卓开发中&#xff0c; 控制器相互传值的几种情况。 <pre name"code" cla…

最近在学习安卓,所以记录下自己学习的点滴。 

我的理解就是每个activity就是类似iOS中的Controller. 在iOS中,我们控制器传值的方式也是各种各样。 下面就介绍下在安卓开发中, 控制器相互传值的几种情况。

<pre name="code" class="java"> //这个是acitvity 跳转                startActivity(new Intent(MainActivity.this,Bactivity.class)); 

 

1. 基本数据类型的Activity传输 与 接收

A 传输:

 findViewById(R.id.toBactivityBtn).setOnClickListener(new View.OnClickListener() { 
 //我布局中的一个button,给其定义一个事件,点击这个事件,跳转到 B Activity.@Overridepublic void onClick(View v) {Intent myIntent = new Intent(MainActivity.this,Bactivity.class);
<pre name="code" class="java">                 //第一种 这个是activity之间传递参数 ,传递基本数据类型 myIntent.putExtra("data", "您传输的字符串"); 
//这个是acitvity 跳转 startActivity(new Intent(MainActivity.this,Bactivity.class));  
 
        }
        });
B 接收

  Intent t = getIntent();String result =  t.getStringExtra("data"); //注意这儿,如果是传的Int类型的,就用 getIntExtra; 类型需要想对应<span style="font-family: Arial, Helvetica, sans-serif;">  </span>

2. 多种基本类型的一次性传输 与接收

A传输

 <pre name="code" class="java">findViewById(R.id.toBactivityBtn).setOnClickListener(new View.OnClickListener() { //我布局中的一个button,给其定义一个事件,点击这个事件,跳转到 B Activity.@Overridepublic void onClick(View v) {Intent myIntent = new Intent(MainActivity.this,Bactivity.class);Bundle myBoundle = new Bundle();myBoundle.putString("name", "张三");myBoundle.putInt("age", 18);myBoundle.putString("address", "湖南省张家界");
<span>		</span><pre style="background-color: rgb(255, 255, 255); font-family: Menlo; font-size: 12pt;"><span style="color: rgb(128, 128, 128); "><em>//方式一   这种方式适合只传送一个Bundle </em></span>
            myIntent.putExtras(myBoundle);
//方式二   这种方式适合传送多个bundle, 接收方根据这个辨别名来取值。
            myIntent.putExtra("bundle辨别名",myBoundle);
//这个是acitvity 跳转 startActivity(new Intent(MainActivity.this,Bactivity.class)); } });
 

 B 接收 

       Bundle myBoundle = t.getExtras(); <span style="color:#ff0000;"> //对应上面的第一种方式,只有一个bundle的时候</span>Bundle myBoundle = t.getBundleExtra("boundle");  <span style="color:#ff0000;">//对应上面的第二种方式,有多个Bundle的时候。</span>String tt = String.format("name = %s age = %s address = %s",myBoundle.getString("name") , myBoundle.getInt("age") , myBoundle.getString("address") );

3. 自定义对象的 传输 与 接收

 前提为 : 我有一个 user类,并实现了构造函数 ,代码如下

package com.example.zgr.myfourtest;
/*** Created by zgr on 16/3/22.*/
public class User {private  String name;public int getAge() {return age;}public void setAge(int age) {this.age = age;}private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public User(String name, int age) {this.name = name;this.age = age;}}

 A 传输  (

 myIntent.putExtra("user",new User("zhangsan ",18));  
这句话需要注意,一定要实现虚拟化方法, 一共有两种方式, 一种为 
Serializable, 一种为  Parcelable,所以分为两种情况描述

        findViewById(R.id.toBactivityBtn).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent myIntent = new Intent(MainActivity.this,Bactivity.class);//对象传递myIntent.putExtra("user",new User("zhangsan ",18));  //Serializable方式 ,后面介绍如果是这种方式如何做?
<span>		</span>myIntent.putExtra("user",new UserTwo("zhangsan",18)); //Parcelable 方式,后面介绍如果是这种方式如何做?
<pre name="code" class="java"><span>	</span>        startActivity(new Intent(MainActivity.this,Bactivity.class));
} });
 B接收 

        Intent t = getIntent();User user = (User) t.getSerializableExtra("user");  <span style="font-family: Arial, Helvetica, sans-serif;">//Serializable方式 </span>UserTwo user = (UserTwo) t.getParcelableExtra("user");  <span style="font-family: Arial, Helvetica, sans-serif;">//Parcelable 方式</span>


User 类 ( Serializable 方式)与 UserTwo类 (Parcelable)的代码

package com.example.zgr.myfourtest;import java.io.Serializable;/*** Created by zgr on 16/3/22.*/
//java中的序列化方式,实现方法,就是继承与Serializable// 速度比较慢,效率低,大部分的操作都是系统帮助实现的。//优点实现简单。
public class User  implements  Serializable {private  String name;public int getAge() {return age;}public void setAge(int age) {this.age = age;}private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public User(String name, int age) {this.name = name;this.age = age;}}

package com.example.zgr.myfourtest;import android.os.Parcel;
import android.os.Parcelable;/*** Created by zgr on 16/3/22.*///这个是android平台给我们提供的序列化方法//效率高,速度块//缺点: 实现起来复杂,需要自己重载一些方法,然后写出对应的序列化过程
public class UserTwo implements Parcelable {public  String name;public  int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public  UserTwo (String name ,int age){this.name = name;this.age = age;}
</pre><pre name="code" class="java">   // 必须实现的方法@Overridepublic int describeContents() {return 0;}
//必须实现的方法@Overridepublic void writeToParcel(Parcel dest, int flags) {
<span>	</span>//把需要序列化的字段,进行写入,类似给系统进行字段注册dest.writeString(getName());  dest.writeInt(getAge());}//需要实现的方法public  static final  Creator<UserTwo> CREATOR = new Creator<UserTwo>() {@Overridepublic UserTwo createFromParcel(Parcel source) {
<span>	</span>   //这里返回序列化的对象,字段与上面写入的字段相对应return  new UserTwo(source.readString(),source.readInt());}@Overridepublic UserTwo[] newArray(int size) {return new UserTwo[0];}};}

4. A Activity 传值 给 B Activity后  ----》  B Activity 在返回传值 , 类似 iOS的代理 回调一样。 

 A 需要接收 B 回传需要作出的改变

   TextView myView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);myView = (TextView)findViewById(R.id.firstTextView);System.out.println("app create ");findViewById(R.id.toBactivityBtn).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent myIntent = new Intent(MainActivity.this,Bactivity.class);myIntent.putExtra("user",new UserTwo("ZHANGSAN two",22));startActivityForResult(myIntent, 0); //这儿要选择带返回值的activety}});}
//必须实现的方法。 
    @Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == 1){ //这个码,需要与回传地,传入的参数要一致,打个比方,有正确的返回值,这个回调码就为1 ,错误,为2,这个都要定义好,这边方便判断。String t =  data.getStringExtra("result");myView.setText(t);}}

B 回传给A  数据 需要作出的改变

                 myView = (TextView) findViewById(R.id.callBackTextView); //这个是B Activity中的一个TextView.Intent myInit = new Intent();    //新建一个IntentmyInit.putExtra("result",myView.getText().toString()); //和 A 传值 给B 一样的做法setResult(1, myInit);  // 这个就是提交返回信息 , 第一个参数为 对应的码, 第二个参数,回调的结果datafinish();  //这个就会自动返回到 A Activity.


总结:

1. 基本数据类型的Activity传输 与 接收

2. 多种基本类型的一次性传输 与接收

3. 自定义对象的 传输 与 接收

4. A Activity 传值 给 B Activity后  ----》  B Activity 在返回传值 , 类似 iOS的代理 回调一样。 




http://www.jmfq.cn/news/5167189.html

相关文章:

  • 青岛企业网站制作哪家好/淘宝seo是什么
  • 在国内做博彩网站代理/代写
  • 大众点评如何做团购网站/企业网站营销实现方式
  • 景县做网站/百度怎么打广告
  • 公司想为一个产品做多个网站/西安网站seo推广
  • 上海未成年人思想道德建设网站/谷歌官网登录入口
  • 做外贸的阿里巴巴网站是哪个更好/推广app赚佣金平台
  • wordpress网站统计插件/广州seo关键词优化费用
  • 麻章网站建设公司/广告网络
  • 58网站一起做网店/高端定制网站建设
  • 网页设计意图怎么写/百度seo软件曝光行者seo
  • 网站设计怎么算间距/什么是淘宝搜索关键词
  • 网站购买云空间/百度一下你就知道百度官网
  • 阿里云 建设网站怎么样/2024年将爆发新瘟疫
  • 如何替换网站ico图标/百度认证营销推广师
  • 怎么新增网站推广/重庆seo优化推广
  • 汕头市研发网站建设/最新app推广
  • 免费订单管理app/网站优化seo怎么做
  • 手机制作钓鱼网站/引擎搜索对人类记忆的影响
  • 精品网站建设费用 磐石网络/营销软件
  • 哪个公司做网站好/安卓aso优化工具
  • 商业网站推广/产品营销策划方案3000字
  • 中心网站建设/南昌seo排名收费
  • 自己做的一个网站怎么赚钱/网络广告网站
  • 织梦网站统计/十大网络推广公司排名
  • 外贸购物网站建设/西安市seo排名按天优化
  • 做外贸需要网站吗/bt蚂蚁
  • 如何做新增网站备案/武汉网站seo推广
  • 垂直门户网站有哪些/百度seo关键词优化电话
  • 网站建设优化排名/机器人编程培训机构排名