Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据。
Intent是Android一个很重要的类。Intent直译是“意图”,什么是意图呢?比如你想从这个Activity跳转到另外一个Activity,这就是一个意图。
Activity跳转,无返回结果
这是最简单的Activity跳转方式。从一个Activity启动另一个Activity,直接
startActivity(new Intent(当前Activity.this, 下一Activity.class))。
《Activity之间的跳转》
//创建可视化界面
public class MyActivity extends Activity {
private Button mbutton
//为跳转的按钮定一个变量
private String str="带参跳转至另一个Activity";
@Override //重写父类Activty的方法
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//用接收找到这个button的id
Button
mbutton=(Button)findViewById(R.id.onebutton);
//监听这个按钮使用
setOnClickListener //匿名内部类监听
mbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
startActivity(new Intent (MyActivity.this,
Text_view.class
))
}
}
《传值》
//从一个Activity带参传入另一个Activity
mbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//inten接收但前的界面和跳转去的界面
Intent intent=new Intent(MyActivity.this,Text_view.class);
//Bundle方法
Bundle bundle=new Bundle();
//字符串导入bundle
bundle.putString("key",str);
//图片导入
Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.welcome_logo);
图片的bitmap放入intent
intent.putExtra("key1",bitmap);
//bundle放入intent
intent.putExtras(bundle);
//启动
startActivity(intent);
//另一个Activity
//用bundle接受呢个intent的值
Bundle bundle=intent.getExtras()
//创建一个String的字符串接收这个bundle接收到的字符串
String s=bundle.getString("key");
//用textView接受找到的这个Activity的呢个TextView的id
TextView textView=(TextView)findViewById(R.id.onetext);
//这个TextView更改为接受到S这个字符串的值
textView.setText(s);
//创建一个imageView找到这个Activity的ImageView的id
ImageView imageView=(ImageView)findViewById(R.id.oneimageview);
//用bitmap接收图片
Bitmap bitmap=(Bitmap)intent.getParcelableExtra("key1");
//将图片更改为接受到这个
imageView.setImageBitmap(bitmap);
《回传值》
进入一个Activity将进入的这个Activity的值带回去
//Activity回传值
//创建可视化界面
public class MyActivity extends Activity {
private Button mbutton
//为跳转的按钮定一个变量
@Override //重写父类Activty的方法
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//用接收找到这个button的id
Button
mbutton=(Button)findViewById(R.id.onebutton);
//监听这个按钮使用
setOnClickListener //匿名内部类监听
mbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MyActivity.this,Text_view.class);
//直接跳转
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//调用父类的方法
super.onActivityResult(requestCode, resultCode, data);
//为intent赋值为data
Intent intent=data;
//用字符串str接收
String str=intent.getStringExtra("hui");
//更改这个文本框的值为接受到的呢个字符串str
textView.setText(str);
}
}
//另一个Activity
public class Text_view extends Activity{
private Button button;
String str="asdasdsa";
Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.paomaxiaoguo);
//接受呢个intent
intent=getIntent();
//用button接收找到这个返回传值的按钮
button=(Button)findViewById(R.id.hui);
//监听这个button
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//给这个按钮写入这个字符串
intent.putExtra("hui",str);
//返回这个intent。回调值
setResult(1,intent);
//删除这边的
finish();
}
});