Intent是一种用于在不同组件(如Activity、Service、BroadcastReceiver)之间传递数据和进行通信的机制。它可以用于启动组件、传递数据、实现组件之间的交互等。
具体来说,Intent的作用包括:
1. 启动组件:通过创建一个Intent并指定要启动的组件(如Activity),可以实现跳转到另一个界面或启动一个服务。
2. 传递数据:可以通过Intent在不同组件之间传递数据。例如,在Activity之间传递数据、将数据传递给Service来执行后台任务等。
3. 实现组件之间的交互:通过Intent可以实现组件之间的交互,例如在Activity中启动Service并传递一些操作指令,在Service中执行相应的操作并返回结果给Activity。
4. 发送广播:通过创建一个Intent并发送广播,可以实现组件之间的松耦合通信。其他组件可以通过注册广播接收器来接收并处理广播。
设计方案
对各栏目文本设计一个文案页面,页面top设置一个返回控件,下方为文案内容(通过recyclerview来装载文案内容)对于intent函数作父子页面的数据传输桥梁
实现方法,用recyclerview中每一项item作为跳转控件,去到一个新的页面,页面包含主体内容同时也包括返回控件。
一、新页面设计 massage.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Back" />
<TextView
android:id="@+id/textView18"
android:layout_width="match_parent"
android:layout_height="681dp"
android:text="TextView"
android:textSize="50sp"
android:gravity="center"/>
</LinearLayout>
包含一个 button 作为回传按钮控件
Textview 作为数据传输接口,显示内容
二、主页面修改(MyAdapter.java)
@Override
public void onBindViewHolder(@NonNull MyHolder holder, int position) {
holder.textView.setText(list1.get(position));
holder.textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context1,MainText.class);
Bundle bundle=new Bundle();
bundle.putString("name",holder.textView.getText().toString());
intent.putExtras(bundle);
startActivity(context1,intent,bundle);
}
});
}
修改部分onClick函数
Intent将本页面与MainText(所要跳转到的页面)连通
bundle.putString用来传输数据,数据的key是 name ,vale为当前textview的内容
最后startActivity跳转intent页面
三、终点页面 MainText.java
public class MainText extends AppCompatActivity {
TextView textView;
Button button;
// 新页面的回传
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.massage);
textView=findViewById(R.id.textView18);
button=findViewById(R.id.button2);
Intent intent_massage=getIntent();
Bundle bundle=intent_massage.getExtras();
textView.setText(bundle.getString("name"));
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
}
在项目内新建MainText.java作该页面的功能实现
1、对主页面的数据传输进行接受
2、根据两者联通,作finish回传
其中setContentView为设置当前页面view视图为massage
效果展示
项目实例已更新到GitHub仓库
iliuer/Test2: sadasd (github.com)