您的位置:首页 > 移动开发 > Android开发

Android学习之Intent使用

2017-06-06 20:58 393 查看


Android学习之Intent使用

1、使用显示Intent
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
上述代码的作用是打开活动SecondActivity
2、使用隐式Intent
首先打开AndroidManifest.xml,添加代码:
<activity

android:name="com.example.activitytest.SecondActivity"

android:label="@string/title_activity_second" >

<intent-filter>
<action android:name="com.example.activitytest.ACTION_START" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="com.example.activitytest.MY_CATEGORY" />

</intent-filter>

</activity>
然后修改FirstActivity中按钮的点击事件:
btn.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

Intent intent=new Intent("com.example.activitytest.ACTION_START");
intent.addCategory("com.example.activitytest.MY_CATEGORY");
startActivity(intent);

}

});
还可以使用隐式Intent,启动其他程序的活动。
Intent intent=new Intent(Intent.ACTION_VIEW);

intent.setData(Uri.parse("http://www.cnblogs.com/zhouhb/"));

//Intent intent=new Intent(Intent.ACTION_DIAL);

//intent.setData(Uri.parse("tel:12345"));
3、使用Intent在Activity之间传递数据
3.1 从FirstActivity向SecondActivity传递数据
String s="from first";

Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("data", s);
startActivityForResult(intent, 1);
3.2 SecondActivity接收传递来的数据
Button btn=(Button)findViewById(R.id.button2);

Intent intent=getIntent();
String string=intent.getStringExtra("data");

btn.setText(string);
3.3 SecondActivity向FirstActivity返回数据
btn.setOnClickListener(new OnClickListener() { 

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

returnData();

}

});
private void returnData() {

Intent intent=new Intent();

intent.putExtra("returnData", "from Second");
setResult(RESULT_OK,intent);

finish();

}
//如果用户不是通过点击按钮,而是按下Back键回到FirstActivity,则重写 onBackPressed
public void onBackPressed() {

// TODO Auto-generated method stub

returnData();

}
3.4 在FirstActivity中重写onActivityResult得到SecondActivity返回的数据
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

// TODO Auto-generated method stub

switch (requestCode) {

  case 1:

    if(resultCode==RESULT_OK){

      String string=data.getStringExtra("returnData");

      Toast.makeText(this, string, Toast.LENGTH_SHORT).show();

    }

    break;
  default:

  break;

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: