Intent 信使、意图

由Intent来协助Android各个组件之间跳转

1、


startActivity(intent)

包下新建一个类,FActivity.class

publicclassFActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.factivity);}}

新建一个XML文件factivity.xml

<Buttonandroid:id="@+id/bt1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="First"/><Buttonandroid:id="@+id/bt2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="Second"/><TextViewandroid:id="@+id/text1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="HelloWorld!"android:layout_gravity="center"/>

同样在创建第二对class和xml。

在AndroidManiFest中注册两个新类,并将默认启动类放在最前:

<?xmlversion="1.0"encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.bcp.layouttest"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activityandroid:name=".FActivity"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity><activityandroid:name=".SActivity"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity><activityandroid:name=".MainActivity"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity></application></manifest>


添加按钮事件:

publicclassFActivityextendsAppCompatActivity{privateButtonbt_first;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.factivity);/****点击第一个按钮实现跳转页面*/bt_first=(Button)findViewById(R.id.bt1);bt_first.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){Intentintent=newIntent();//第一个:上下文对象//第二个:目标文件intent.setClass(FActivity.this,SActivity.class);startActivity(intent);}});}}


2、

startActivityForResult(intent,requestCode);

onActivityResult(int requestCode,int resultCode,Intent data)

setResult(resultCode,data);


查看代码:

FActivity.java

publicclassFActivityextendsAppCompatActivity{privateButtonbt_first;privateButtonbt_second;privateTextViewtv;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.factivity);/****点击第一个按钮实现跳转页面*/bt_first=(Button)findViewById(R.id.bt1);bt_first.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){Intentintent=newIntent();intent.setClass(FActivity.this,SActivity.class);startActivity(intent);}});/****通过startActivityForresult实现*/bt_second=(Button)findViewById(R.id.bt2);bt_second.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){Intentintent=newIntent().setClass(FActivity.this,SActivity.class);/****第二个参数是请求的标示*/startActivityForResult(intent,1);}});tv=(TextView)findViewById(R.id.text1);}/****通过startActivityForresult实现,接收返回数据的方法*一、请求的标示*二、第二个页面返回的标示*三、第二个页面传回的数据*/@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){super.onActivityResult(requestCode,resultCode,data);//判断是否满足条件来进行回传数据if(requestCode==1&&resultCode==2){Stringcontent=data.getStringExtra("intent");tv.setText(content);}}}


SActivity.java

publicclassSActivityextendsAppCompatActivity{privateButtonbt;privateStringcontent="Hello~!";@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.sactivity);/****第二个页面给第一个页面回传数据*回传给第一个页面的实际上是一个intent对象*/bt=(Button)findViewById(R.id.bt3);bt.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewview){Intentintent=newIntent();//创建回传对象intent.putExtra("intent",content);setResult(2,intent);//结束当前页面finish();}});}}




App的签名和打包:

1、为了保证每个应用开发者的合法。

2、防止别人通过相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改

3、保证我们每次发布的版本的一致性(如自动更新不会因为版本不一样而无法安装)



更多相关文章

  1. Android中的高效率的数据库操作框架----LitePal
  2. Android获取网络图片应用示例
  3. h5在线动态页面调用app原生方法
  4. 初探Android中的请求服务器并解析返回的json数据
  5. Android(安卓)根据城市名称获取经纬度
  6. Android高级工程师成长路线
  7. android 获得listview里的控件的id
  8. Android(安卓)按钮控制ViewPager左右翻页
  9. Android程序开发之数据存储(一): 使用sqlite 进行登录注册

随机推荐

  1. Android电话拨打流程源码分析
  2. Android流媒体播放器
  3. Android(安卓)适配---notification led
  4. android中android:layout_gravity和andro
  5. Android程序员必看之Android六大优势
  6. Android(安卓)音频 OpenSL ES PCM数据播
  7. Android之事件响应的两种模型分析
  8. Android的风暴前夕
  9. 披上ios外套的Android为何会格外受欢迎?
  10. 10个常见的Android新手误区