这一篇我们要讲的内容主要是Activity的创建以及多个Activity之间的调用和数据的携带与返回,相信读者们耐心且用心的读完这篇文章一定能学到一些知识,加深对Activity的了解和掌握。


1.Activity的创建:

   步骤如下:

(1)在src下的包中新建一个类继承Activity类(java文件)

(2)重写onCreate方法

(3)创建与这个Activity对应的xml文件

(4)在继承Activity的类中通过setContentView()加载试图(上一步创建的xml文件)

(5)在AndroidManifest.xml文件中注册


2.Activity之间的跳转:

使用Activity实现不同Activity的跳转

* 1 创建一个新的Activity(略过)

* 2 创建Intend对象,是四个基本组件的桥梁

* 3 启动Activity的方法 startActivity

* 4 给按钮添加监听,实现跳转

*   (1)声明一个Button,同时在主xml文件中添加一个Button

*   (2)通过findViewById方法引入这个Button

*   (3)通过setOnClickListener的匿名内部类来添加监听

   具体代码如下(未列出的代码在工程创建后由系统自动生成):

(1)创建的新的Activity的java文件Act2.java

package com.example.newactivity;
import android.app.Activity;
import android.os.Bundle;
public class Act2 extends Activity{
    //重写onCreate方法
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载试图
        setContentView(R.layout.act2);
    }
}

(2)在主配置文件AndroidManifest.java文件中注意一定千万不要忘记对新建的Activity进行注册:

</activity>
      <activity android:name="Act2"></activity>

(3)main_Activity.xml文件中添加一个用于跳转的Button:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="跳转" />

(4)在MainActivity.java文件中实现跳转的主要功能代码:

package com.example.newactivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
    //声明Button
    private Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //引入对应id号的Button
        btn=(Button)findViewById(R.id.button);
        //给Button创建监听
        btn.setOnClickListener(new OnClickListener() {
                                                                                                                                                                                                                    
            @Override
            public void onClick(View arg0) {
                //创建Intent对象来实现Activity的跳转
                Intent i=new Intent(MainActivity.this,Act2.class);
                //调用startActivity方法启动新的Activity
                startActivity(i);
            }
        });
    }
                                                                                                                                                                                                            
}

   到这里我们就可以运行结果看一下了:

多个Activity之间的相互转换_Activity创建、跳转、数据携带与返

多个Activity之间的相互转换_Activity创建、跳转、数据携带与返_02



3.Activity之间的数据携带

   这里我们只拿出java文件,其他文件不写了,代码如下:

(1)MainActivity.java

package com.example.startactivity;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
                                                                                                                                      
            @Override
            public void onClick(View arg0) {
                Intent i=new Intent(MainActivity.this,Act2.class);
                i.putExtra("data", "谢谢你把我携带到这里");
                startActivity(i);
            }
        });
    }
}

(2)Act2.java

package com.example.startactivity;
import android.app.Activity;
import android.os.Bundle;
public class Act2 extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act2);
        String strInfo=getIntent().getStringExtra("data");
        System.out.println("Act2--"+strInfo);
    }
}

(3)注意不要忘了Activity的注册!

   运行结果如下:

多个Activity之间的相互转换_Activity创建、跳转、数据携带与返_03

多个Activity之间的相互转换_Activity创建、跳转、数据携带与返_04



4.Activity之间的数据返回:

   基于前面的数据携带,我们接下来讲一下数据的返回,这一点主要应用于注册或者登陆界面,当跳转到下一个页面时可能需要返回给前一个页面一些值,实现的代码如下:

   

(1)MainActivity.java文件:

package com.example.startactivityforresult;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
                                                                   
            @Override
            public void onClick(View arg0) {
                Intent i=new Intent(MainActivity.this,Act2.class);
                startActivityForResult(i, 1);
            }
        });
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
        case 1:
            System.out.println(data.getStringExtra("data"));
            break;
        default:
            System.out.println("返回错误");
            break;
        }
    }
                                                           
}

(2)Act2.java文件:

package com.example.startactivityforresult;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
public class Act2 extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.act2);
        findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
                                                                
            @Override
            public void onClick(View v) {
                Intent i=new Intent(Act2.this,MainActivity.class);
                i.putExtra("data", "我是返回主界面的信息");
                setResult(1, i);
                finish();
            }
        });
    }
}

(3)运行结果:

多个Activity之间的相互转换_Activity创建、跳转、数据携带与返_05

多个Activity之间的相互转换_Activity创建、跳转、数据携带与返_06

多个Activity之间的相互转换_Activity创建、跳转、数据携带与返_07



   今天就到这里了,大家晚安,GoodNight!