Intent是Android应用内不同组件之间的通讯载体:
Intent启动Activity、Service、BroadcastReceiver
启动Activity:调用startActivity(Intent intent)或startActivityForResult(Intent intent,int requestCode);
启动Service:调用startService(Intent intent)或bindService(Intent intent,ServiceConnection conn,int flags);
触发BroadcastReceiver:调用sendBroadcast(Intent intent);
上述方法中的intent参数用于封装当前组件在启动目标组件时所需的信息,系统通过该信息找到对应的组件,完成组件的调用。
Intent分类:
Intent属性:
Intent对象通过属性来设置相应的启动目标
Component组件
Action动作
Category类别
Data数据
调用系统打电话功能的步骤:
1. 做一个按钮
2. 在按钮的相应动作中:
创建Intent对象 Intent it= new Intent();
设定动作 : it.setAction(Intent.ACTION_CALL);
设定数据:it.setData(Uri.parse("tel:15100000000"));
启动Activity: startActivity(it);
Type数据类型
Extras扩展信息
**爱好选择代码
package com.example.wangxiaowei1808060227;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
public class FirstActivity extends AppCompatActivity {
CheckBox selectCheckBox1;
CheckBox selectCheckBox2;
CheckBox selectCheckBox3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
selectCheckBox1=findViewById(R.id.like1);
selectCheckBox2=findViewById(R.id.like2);
selectCheckBox3=findViewById(R.id.like3);
}
public void submit(View view)
{
Intent intent = new Intent(view.getContext(), SecondActivity.class);
if(selectCheckBox1.isChecked())
{
intent.putExtra("hobby1",selectCheckBox1.getText().toString());
}
if (selectCheckBox2.isChecked())
{
intent.putExtra("hobby2",selectCheckBox2.getText().toString());
}
if (selectCheckBox3.isChecked())
{
intent.putExtra("hobby3",selectCheckBox3.getText().toString());
}
startActivity(intent);
}
}
====================================================================================
package com.example.wangxiaowei1808060227;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class SecondActivity extends AppCompatActivity {
TextView textView1;
TextView textView2;
TextView textView3;
@Override
protected void onCreate(Bundle savedInstanceState) {
String hobby="";
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
textView1=findViewById(R.id.hobby1);
textView2=findViewById(R.id.hobby2);
textView3=findViewById(R.id.hobby3);
String hobby1 = getIntent().getStringExtra("hobby1");
String hobby2 = getIntent().getStringExtra("hobby2");
String hobby3 = getIntent().getStringExtra("hobby3");
if (!hobby.equals(hobby1)) {
textView1.setText(hobby1);
}
if (!hobby.equals(hobby2)) {
textView2.setText(hobby2);
}
if (!hobby.equals(hobby2)) {
textView3.setText(hobby3);
}
}
}**