Intent在实际开发中广泛使用,不仅可以启动activity和service,还可以用于ContentProvider以外的三个组件之间的数据传输,不仅可以在一个APP应用程序内进行通信,还可以在多个APP应用程序之间进行通信
为了简化布局,不粘贴xml布局文件。 (主活动具有EditText和Button,结果活动具有TextView ) ) )。
1 .显式Intent
intent intent=new intent (main activity.this,ResultActivity.class );
开始活动(intent;
2 .隐式Intent
intent intent=new intent (wujiubuhuan );
开始活动(intent;
3.activity之间的数据传输,以及与隐式Intent配合使用的完整代码表示:
主活动代码:
publicclassmainactivityextendsappcompatactivity {
私有编辑编辑文本;
私有button mbutton;
privatestring class name=getclass ().getSimpleName;
@Override
protectedvoidoncreate (边界维护实例state )。
super.oncreate (savedinstancestate;
setcontentview (r.layout.activity _ main;
medittext=(edittext ) findviewbyid ) r.id.edittext;
mbutton=(button ) findviewbyid ) r.id.button;
mbutton.setonclicklistener (new view.onclick listener ) )。
@Override
公共void onclick (viewv ) {
获取EditText框的内容,并将其转换为字符串格式
String text=mEditText.getText ().toString );
确定EditText中是否为空字符串
if(text.isempty () ) ) )。
toast.maketext (main activity.this,' please type some character ',Toast.LENGTH_SHORT ).show );
}else{
intentI=newintent(text;
从getPackageManager ()获取PackageManager对象
packagemanagerpm=getpackagemanager (;
通过检测resolveInfo是否为空(如果文本和ResultActivity的操作匹配,则不为空),查找组件是否响应Intent
resolveinforesolveinfo=pm.resolve activity (I,package manager.match _ default _ only );
resolve info==null (解析信息) {
toast.maketext (main activity.this,' the wrong usage ',Toast.LENGTH_SHORT ).show );
} else{
I.putextra(data )、text );
开始活动(I );
}
}
}
);
}
}
结果活动代码:
publicclassresultactivityextendsappcompatactivity {
@Override
protectedvoidoncreate (边界维护实例state )。
super.oncreate (savedinstancestate;
setcontentview (r.layout.activity _ result;
textviewmtextview=(textview ) findviewbyid(r.id.text );
Intent i=getIntent (;
Intent的数据基础用Bundle包装,所以可以直接获取Bundle对象
Bundle b=i.getExtras (;
stringtext=b.getstring('data );
//另一个实现是在Intent上执行:字符串文本=I.getstring extra (' data );
mtextview.settext(text );
}
}
安卓维护文件:
package=' com.example.intent demo '
安卓: allow backup=' true '
Android : icon=' @ mi pmap/IC _ launcher '
Android:级别='@string/app_name '
android:supportsRtl='true '
Android : theme=' @ style/app theme '