Intent 信使、意图

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

1、

startActivity(intent)

包下新建一个类,FActivity.classpublic class FActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.factivity);

}

}

新建一个XML文件factivity.xml

android:id="@+id/bt1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="First"/>

android:id="@+id/bt2"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Second"/>

android:id="@+id/text1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Hello World!"

android:layout_gravity="center"

/>

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

在AndroidManiFest中注册两个新类,并将默认启动类放在最前:<?xml  version="1.0" encoding="utf-8"?>

package="com.bcp.layouttest">

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">

添加按钮事件:public class FActivity extends AppCompatActivity {

private Button bt_first;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.factivity);

/***

* 点击第一个按钮实现跳转页面

*/

bt_first= (Button) findViewById(R.id.bt1);

bt_first.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent intent=new Intent();

//第一个:上下文对象

//第二个:目标文件

intent.setClass (FActivity.this,SActivity.class);

startActivity(intent);

}

});

}

}

2、

startActivityForResult(intent,requestCode);

onActivityResult(int requestCode,int resultCode,Intent data)

setResult(resultCode,data);

查看代码:

FActivity.javapublic class FActivity extends AppCompatActivity {

private Button bt_first;

private Button bt_second;

private TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.factivity);

/***

* 点击第一个按钮实现跳转页面

*/

bt_first= (Button) findViewById(R.id.bt1);

bt_first.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent intent=new Intent();

intent.setClass (FActivity.this,SActivity.class);

startActivity(intent);

}

});

/***

* 通过startActivityForresult实现

*/

bt_second= (Button) findViewById(R.id.bt2);

bt_second.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent intent=new Intent().setClass(FActivity.this,SActivity.class);

/***

* 第二个参数是请求的标示

*/

startActivityForResult(intent,1);

}

});

tv= (TextView) findViewById(R.id.text1);

}

/***

* 通过startActivityForresult实现,接收返回数据的方法

* 一、请求的标示

* 二、第二个页面返回的标示

* 三、第二个页面传回的数据

*/

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

//判断是否满足条件来进行回传数据

if(requestCode==1&&resultCode==2){

String content=data.getStringExtra("intent");

tv.setText(content);

}

}

}

SActivity.javapublic class SActivity extends AppCompatActivity{

private Button bt;

private String content="Hello~!";

@Override

protected void onCreate( Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.sactivity);

/***

* 第二个页面给第一个页面回传数据

* 回传给第一个页面的实际上是一个intent对象

*/

bt= (Button) findViewById(R.id.bt3);

bt.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

Intent intent=new Intent();

//创建回传对象

intent.putExtra("intent",content);

setResult(2,intent);

//结束当前页面

finish();

}

});

}

}

App的签名和打包:

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

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

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

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐