热门IT资讯网

Android中使用Intent实现界面跳转

发表于:2024-11-28 作者:热门IT资讯网编辑
编辑最后更新 2024年11月28日,Intent 信使、意图由Intent来协助Android各个组件之间跳转1、startActivity(intent)包下新建一个类,FActivity.classpublic class FAct

Intent 信使、意图

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

1、


startActivity(intent)

包下新建一个类,FActivity.class

public class FActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.factivity);    }}

新建一个XML文件factivity.xml

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

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

                                                                                                                                                                                                                                


添加按钮事件:

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.java

public 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.java

public 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、保证我们每次发布的版本的一致性(如自动更新不会因为版本不一样而无法安装)




0