Android学习之数据传递
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
实现要求:
创建一个项目,包括2个Activity(即2个界面),界面设计如下图所示
(1)在第一个界面中点击相应文字,跳转到对应界面。
(2)在第1个界面中点击“绕口令”,以显式Intent方式跳转到第2个界面,
(3)在第1个界面中点击 “小笑话”、“扑克牌”,以显式intent方式跳转到第2个界面,
(4)在第2个界面点击“返回”按钮可以返回图1界面
实现思路:
点击文本框,通过事件触发中的方法,获取文本信息,截取字符串,获得前缀数字字符串,进行数据传递,
activity2接收传递的activity1中数据,进行匹配,设置TextView中的信息。
示例:
<TextView
android:id="@+id/id1"
android:layout_width="134dp"
android:layout_height="51dp"
android:clickable="true"
android:gravity="center"
android:onClick="transferAc"
android:text="1.绕口令"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.344" />
在TextView中设置text,并且设置可点击属性,点击后通过transferAc方法。
设置可点击性;
android:clickable="true"
通过view强转获得TxtView对象,这样就可以实现,不同的TextView通过同一个点击事件进来,都能获得当前的组件信息。
public void transferAc(View view) {
TextView textView = (TextView) view;
String str = textView.getText().toString().split("\\.")[0];
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
System.out.println(str+"--------------");
if(str.equals("1")){
intent.putExtra("1",str);
}else if(str.equals("2")){
intent.putExtra("1",str);
}else if(str.equals("3")){
intent.putExtra("1",str);
}else if(str.equals("4")){
intent.putExtra("1",str);
}else if(str.equals("5")){
intent.putExtra("1",str);
}
startActivity(intent);
}
Activity2接收并设置:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
Intent intent = getIntent();
String id = intent.getStringExtra("1");
TextView view = findViewById(R.id.textView5);
if(id.equals("1")){
view.setText("灰化肥发挥会挥发");
}else if(id.equals("2")){
view.setText("有个小孩他姓王,这个笑话就这么长");
}else if(id.equals("3")){
view.setText("你选择的是:3.扑克牌");
view.append("\n此项功能待开发...");
}else if(id.equals("4")){
view.setText("你选择的是:4.浏览器");
view.append("\n此项功能待开发...");
}else if(id.equals("5")){
view.setText("你选择的是:5.打电话");
view.append("\n此项功能待开发...");
}else{
view.setText("输入有误");
}
}
效果图:
结束:
如果你看到这里或者正好对你有所帮助,希望能点个👍或者⭐感谢;
有错误的地方,欢迎在评论指出,作者看到会进行修改。