Android学习之数据传递

615 阅读2分钟

Android学习之数据传递

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

实现要求:

创建一个项目,包括2个Activity(即2个界面),界面设计如下图所示

(1)在第一个界面中点击相应文字,跳转到对应界面。

(2)在第1个界面中点击“绕口令”,以显式Intent方式跳转到第2个界面,

(3)在第1个界面中点击 “小笑话”、“扑克牌”,以显式intent方式跳转到第2个界面,

(4)在第2个界面点击“返回”按钮可以返回图1界面

image-20210924184236408

实现思路:

点击文本框,通过事件触发中的方法,获取文本信息,截取字符串,获得前缀数字字符串,进行数据传递,

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("输入有误");
         }
     }

效果图:

结束:

如果你看到这里或者正好对你有所帮助,希望能点个👍或者⭐感谢;

有错误的地方,欢迎在评论指出,作者看到会进行修改。