多个Activity之间的相互转换

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


1.Activity的建立:android

   步骤以下:
app

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

(2)重写onCreate方法this

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

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

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


2.Activity之间的跳转:blog

使用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);
            }
        });
    }
                                                                                                                                                                                                            
}

   到这里咱们就能够运行结果看一下了:



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的注册!

   运行结果以下:



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)运行结果:



   今天就到这里了,你们晚安,GoodNight!

相关文章
相关标签/搜索