在App Inventor 2中将数据从一个屏幕发送到另一个屏幕

时间:2018-01-10 06:11:28

标签: android

enter image description here enter image description here所以我正在开发一个应用,当用户点击列表选择器中的标题时,会打开另一个屏幕并显示该地点的图片。我一直在四处寻找,我无法弄清楚如何将数据从一个屏幕发送到另一个屏幕以及图片的数据。我已经看过使用Tinydb,但老实说我很困惑。我正在使用MIT App Inventor 2 btw。我已经包含图像以帮助解决我的困惑

2 个答案:

答案 0 :(得分:0)

  1. 使用静态变量:

    • 如果title数据是静态的,那么您可以将其定义为静态,这样它就可以是Screen1的所有对象的相同副本。
    • 现在,您可以通过说明Screen1.title
    • Screen2访问它
  2. 使用Intent进行通信

    • 如果标题是可以通过用于传递标题的intent传递的数据
    • 例如,如果title是来自 Screen1 intent.putExtra("TITLE", title);
    • 的字符串
    • Screen2 中,您可以执行以下操作

      String newString;
      if (savedInstanceState == null) {
           Bundle extras = getIntent().getExtras();
           if(extras == null) {
               newString= null;
           } 
           else {
                newString= extras.getString("TITLE");
           } 
      } 
      else {
                newString=(String)savedInstanceState.getSerializable("TITLE");
      }
      
  3. 使用接口进行回调:

    • 如果title非常重要,您可以将界面传递给Screen2,让Screen1类实现此界面
    • 引用Screen1类接口
    • 通过回复此title
    • 类来访问Screen1
  4. 直接引用Screen1类:

    • Screen2直接引用包含标题的Screen1类的特定对象
    • 这样Screen2可以访问Screen1 class
    • 的属性
    • 请记住,在直接引用时,您希望传递Screen1的同一对象,您可以使用this关键字
    • 执行此操作

答案 1 :(得分:0)

通过Intent()传递数据是将数据传递到另一个活动或片段的最佳方式。它非常易于使用。 请参阅此Link