首页 文章 精选 留言 我的

精选列表

搜索[android things],共10000篇文章
优秀的个人博客,低调大师

Android笔记:Intent的Component使用

使用components有两种方式: 1 2 3 ComponentNamecom= new ComponentName(MainActivity. this ,MyActivity. class ); //first ComponentNamecom= new ComponentName( "com.example.testcomponent" , "com.example.testcomponent.MyActivity" ); //second 第二种方式的第二个参数必须写全包名,不然会报错的。 一样的,主Activity中: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 button.setOnClickListener( new Button.OnClickListener() { @Override public void onClick(Viewarg0) { //TODOAuto-generatedmethodstub Intentintent= new Intent(); ComponentNamecom= new ComponentName( "com.example.testcomponent" , "com.example.testcomponent.MyActivity" ); intent.setComponent(com); Strings= "ThisisaTest." ; intent.putExtra( "id" ,s); startActivity(intent); } }); 在目标Ativity中获取数据和上面是一样的,但是,在目标Activity中就可以获取到源目标,知道是从哪儿传递过来的: 1 2 3 4 5 6 7 8 text=(TextView)findViewById(R.id.text); Intentintent=getIntent(); Stringstr=intent.getStringExtra( "id" ); ComponentNamecom=intent.getComponent(); StringpkgName=com.getPackageName(); StringclassName=com.getClassName(); text.setText(str+ "\n" +pkgName+ "\n" +className); 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1611832,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android:通过Intent传递对象、Parcelable

1.对要传递的对象类型实现Parcelable: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 public class User implements Parcelable //对象必须实现Parcelable接口才可以putExtra(或者序列化) { Stringname; Stringpsw; public User(Stringname,Stringpsw) { super (); this .name=name; this .psw=psw; } @Override public StringtoString() { return "User[name=" +name+ ",psw=" +psw+ "]" ; } @Override public int describeContents() { return 0 ; } @Override public void writeToParcel(Parceldest, int flags) //将属性写入Parcel对象 { dest.writeString(name); dest.writeString(psw); } public static final Parcelable.Creator<User>CREATOR= new Parcelable.Creator<User>() { public UsercreateFromParcel(Parcelin) { return new User(in); //创建一个有参构造函数 } public User[]newArray( int size) { return new User[size]; } }; public User(Parcelin) //根据写入的顺序依次读取 { name=in.readString(); psw=in.readString(); } } 2.第一个activity传递user对象: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 public class MainActivity extends Activity { private EditTexteditText1; private EditTexteditText2; @Override protected void onCreate(BundlesavedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText1=(EditText)findViewById(R.id.editText1); editText2=(EditText)findViewById(R.id.editText2); findViewById(R.id.button1).setOnClickListener( new OnClickListener() { @Override public void onClick(Viewv) { Stringnamestr=editText1.getText().toString(); Stringpswstr=editText2.getText().toString(); Useruser= new User(namestr,pswstr); Intentintent= new Intent(MainActivity. this ,NextActivity. class ); intent.putExtra( "user" ,user); //传入对象,对象类必须实现Parcelable或者序列化 startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menumenu) { getMenuInflater().inflate(R.menu.activity_main,menu); return true ; } } 3.第二个activity接收user对象: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class NextActivity extends Activity { @Override protected void onCreate(BundlesavedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_next); TextViewtextView=(TextView)findViewById(R.id.textView1); Intentintent=getIntent(); Useruser=intent.getParcelableExtra( "user" ); //得到一个对象 textView.setText(user.toString()); } @Override public boolean onCreateOptionsMenu(Menumenu) { getMenuInflater().inflate(R.menu.activity_next,menu); return true ; } } 其他笔记: 1.带有数组类型属性的类 1 2 3 4 5 6 7 8 9 10 @Override public void writeToParcel(Parceldest, int flags) { dest.writeStringList(CompanyIntroList); } public EstateInfoJson(Parcelin) { CompanyIntroList= new ArrayList<String>(); in.readStringList(CompanyIntroList); } 2.带有其他类的属性 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public EstateParamJsonEstateParam; @Override public void writeToParcel(Parceldest, int flags) { dest.writeValue(EstateParam); } @Override public EstateInfoJson(Parcelin) { EstateParam=(EstateParamJson)in.readValue(EstateParamJson. class .getClassLoader()); } 3.带有其他类的数组类型的属性 1 2 3 4 5 6 7 8 9 10 11 public ArrayList<PicJson>shiJing; //实景图 @Override public void writeToParcel(Parceldest, int flags) { dest.writeTypedList(shiJing); } public GalleryJson(Parcelin) { shiJing= new ArrayList<PicJson>(); in.readTypedList(shiJing,PicJson.CREATOR); } 4.带有子类父类的情况: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 public abstract class A implements Parcelable{ private int a; protected A( int a){ this .a=a; } public void writeToParcel(Parcelout, int flags){ out.writeInt(a); } protected A(Parcelin){ a=in.readInt(); } } public class B extends A{ private int b; public B( int a, int b){ super (a); this .b=b; } public static final Parcelable.Creator<B>CREATOR= new Parcelable.Creator<B>(){ public BcreateFromParcel(Parcelin){ return new B(in); } public B[]newArray( int size){ return new B[size]; } }; public int describeContents(){ return 0 ; } public void writeToParcel(Parcelout, int flags){ super .writeToParcel(out,flags); out.writeInt(b); } private B(Parcelin){ super (in); b=in.readInt(); } } 本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1217554,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册