学习记录20180903/0904

Android studio 使用intent实现页面跳转

实现两个界面的跳转

*******无返回结果的页面跳转

1需要两个.java文件以及相对应的布局文件(.xml)

FActivity.java--factivity.xml(第一个界面)

SActivity.java- -sactivity.xml(第二个界面)

(布局文件的名字都要小写,否则会出错,尽量不要出现空格)

2清单文件AndroidMAnifest.xml---- 每次新创建一个java累都要在清单文件中声明才能使用否则会出错

执行有先后顺序,先执行第一个出现的

如第一个界面的声明:

<activity android:name=".FActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

3.具体操作:

****在第一个界面中通过点击按钮实现页面的跳转转到第二界面

**** FActivity

package com.xdw.test1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;
import android.widget.Button;

public class FActivity extends Activity {
    //对按钮进行操作必须先进行初始化
    private Button bt1;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);//ctrl+z返回上一步
        setContentView(R.layout.factivity);//创建监听器实现与布局文件的联系
        /**
         * 通过点击bt1实现页面之间的跳转
         * 1.startActivity的方式实现跳转
         * 1>初始化intent
         */

        bt1=findViewById(R.id.button1_first);
        //注册一个点击事件
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //初始化一个intent
                /**
                 * 第一个参数:上下文对象this
                 * 第二个参数:目标文件
                 */
                Intent intent =new Intent(FActivity.this,SActiviyt.class);
                startActivity(intent);
                FActivity.this.finish();
            }
        });
    }
}

****SActiviyt

package com.xdw.test1;

import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;

public class SActiviyt extends Activity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);//系统自己生成的activity的生命周期的开始
        setContentView(R.layout.sactiviyt);//
    }
}

*****返回结果的页面跳转

*****就是点击第一个页面跳转到第二个页面,在第二个页面上点击按钮再次回到第一个页面并且返回一个数值给第一个页面

*****FActivity:

package com.xdw.test1;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class FActivity extends Activity {
    //对按钮进行操作必须先进行初始化
    private Button bt1;
    private  Button bt2;
    private TextView tv;
    private Context context;//一个全局变量
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);//ctrl+z返回上一步
        setContentView(R.layout.factivity);//创建监听器
        /**
         * 通过点击bt1实现页面之间的跳转-----无返回结果的情况
         * 1.startActivity的方式实现跳转
         * 1>初始化intent
         */
        context=this;
        bt1=findViewById(R.id.button1_first);
        bt2=findViewById(R.id.button2_second);
        tv=findViewById(R.id.textView);
        //注册一个点击事件
        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //初始化一个intent
                /**
                 * 第一个参数:上下文对象this----当前的界面
                 * 第二个参数:目标文件----第二个界面
                 */
                Intent intent =new Intent(context,SActiviyt.class);
                startActivity(intent);
            }
        });
        /**
         * -----有返回结果的页面跳转实现方式
         */
        bt2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //初始化一个intent
                /**
                 * 第一个参数:上下文对象this
                 * 第二个参数:目标文件
                 */
                Intent intent =new Intent(context,SActiviyt.class);
                startActivityForResult(intent,1);
                /**
                 * 第一个对象是intent对象
                 * 第二个参数是请求的一个标识---请求码
                 */
                //FActivity.this.finish();
            }
        });
    }
    /**
     * 通过startActivityForResult跳转,接收返回数据的方法
     * requestCode请求的标志
     * resultCode第二个页面返回的标志
     * data第二个页面回传的数据
     * 请求码为1,结果码为2
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==1&&resultCode==2){
            data.getStringExtra("data");
            String content=data.getStringExtra("data");//字符串content得到data数据
            tv.setText(content);//文本框中显示得到的字符串

        }
    }
}

******SActivity:

package com.xdw.test1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;
import android.widget.Button;

public class SActiviyt extends Activity {
    private Button bt;
    private String content="hello!you are good girl!!";//回传给第一个页面
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);//系统自己生成的activity的生命周期的开始
        setContentView(R.layout.sactiviyt);//
        /**
         * 第二个页面什么时候给第一个页面回传数据,-----点击按钮回传数据
         * 实际上回传了一个intent对象,把数据给了intent
         */
        bt=findViewById(R.id.button_s);
        bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent data=new Intent();//data是一个intent对象
                data.putExtra("data",content);//数据放到data里面去
                setResult(2,data);//请求码和结果码,返回data
                //结束当前页面
                finish();



            }
        });

    }
}

猜你喜欢

转载自blog.csdn.net/weixin_41499217/article/details/82354926