这一篇我们要讲的内容主要是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!
转载于:https://blog.51cto.com/wangzhaoli/1279252