首页 > 系统 > Android > 正文

Android页面跳转(intent)

2019-11-06 09:41:48
字体:
来源:转载
供稿:网友

Intent被用来连接各个Activity,也被用来在Activity之间传递数据。跳转的方法有startActivity()和startActivityForResult()。

startActivity()


从一个Activity跳转到另一个Activity传递数据分两步:

在起始Activity中存入待传递数据:Intent.putExtra(String K,String V)在目标Activity中取出数据:Intent.getExtra()得到一个Bundle对象,该对象包含Intent携带的数据。再使用Bundle.getString(String key),通过key参数,得到key对应的值。(Bundle是一个HashMap再封装)
public class MainActivity extends Activity { @Override PRotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText et=(EditText)findViewById(R.id.edittext1); Button btn=(Button)findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 Intent intent=new Intent(); String str=et.getText().toString(); intent.putExtra("Name", str); //传递数据 intent.setClass(MainActivity.this, Activity1.class); startActivity(intent); } }); }}public class Activity1 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main1); TextView tv=(TextView)findViewById(R.id.show); Intent intent=getIntent(); Bundle bundle=intent.getExtras();//接受数据 String name=bundle.getString("Name"); tv.setText("your Info is:"+"/n"+"name : "+name); }}

这里写图片描述 这里写图片描述


startActivityForResult()


完成从一个页面跳转到另一个页面完成相关工作,如注册等,在注册页面完成输入等相关信息后再返回起始界面,并显示用户在注册页面输入的相关信息。其主要步骤为:

新建Intent,并使用startActivityForResult()方法调用。重写onActivityResult(),在该方法中处理返回结果。在目标Activity中,新建空指向的Activity,并绑定数据。使用setResult()方法,将Intent传递到结果中。调用finish()结束目标Activity。同时系统会调用重写的onActivityResult()。 onActivityResult代码如下: protected void onActivityResult(int requestCode,int resultCode,Intent data){ super.onActivityResult(requestCode, resultCode, data); }第一个参数是请求码,标示本次结果对应哪个请求。第二个参数是结果码,其中RESULT_OK,代表结果返回成功。RESULT_CANCELED本次操作取消返回的值。
public class MainActivity extends Activity { static final int REQUEST_CODE=0;//预定义请求码 TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv=(TextView)findViewById(R.id.show); Button btn=(Button)findViewById(R.id.register); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 Intent intent=new Intent(); intent.setClass(MainActivity.this, Activity1.class); startActivityForResult(intent,REQUEST_CODE ); } }); } protected void onActivityResult(int requestCode,int resultCode,Intent data){ if(requestCode==REQUEST_CODE)//判断请求码是否正确 { if(resultCode==RESULT_OK){//判断结果码是否正确 Bundle bundle=data.getExtras(); String name=bundle.getString("Name"); tv.setText("your Info is:/n"+name); } } super.onActivityResult(requestCode, resultCode, data); }public class Activity1 extends Activity { Button confirm; EditText et; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main1); et=(EditText)findViewById(R.id.edittext1); confirm=(Button)findViewById(R.id.confirm); confirm.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自动生成的方法存根 Intent intent=new Intent(); String name=et.getText().toString(); intent.putExtra("Name", name); setResult(RESULT_OK, intent);//将Intent设置到结果中 finish();//结束Activity } }); }

这里写图片描述 这里写图片描述 这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表