这一篇我们要讲的内容主要是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); } }); } }
到这里我们就可以运行结果看一下了:
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!