这次讲解一下如何使用静态变量来传递数据,
原理其实很简单,就是在接收端的Avtivity里面设置static的变量,在发送端这边改变静态变量的值,然后启动意图。
效果图为:
发送端截图:
接收端截图:
上代码:
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { private Button btn; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn = (Button)findViewById(R.id.btOpenOtherActivity); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //定义一个意图 Intent intent = new Intent(MainActivity.this,OtherActivity.class); //改变OtherActivity的三个静态变量的值 OtherActivity.name = "wulianghuan"; OtherActivity.age = "22"; OtherActivity.address = "上海闵行"; startActivity(intent); } }); } }
OtherActivity.java
import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import com.example.hello10.R; public class OtherActivity extends Activity { public static String name; public static String age; public static String address; private TextView text_name; private TextView text_age; private TextView text_address; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.other); text_name = (TextView) findViewById(R.id.name); text_age = (TextView) findViewById(R.id.age); text_address = (TextView) findViewById(R.id.address); //设置文本框的数据 text_name.setText("姓名:"+name); text_age.setText("年龄:"+age); text_address.setText("地址:"+address); } }
strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">hello10</string> <string name="action_settings">Settings</string> <string name="tip1">这是:MainActivity</string> <string name="tip2">使用静态变量传递数据</string> <string name="tip3">Hello world!</string> </resources>
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/tip1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btOpenOtherActivity" android:text="@string/tip2"/> </LinearLayout>
other.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/name" android:text="" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/age" android:text="" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/address" android:text="" /> </LinearLayout>
相关推荐
使用Intent可以很方便在不同的Activity之间传递数据,这个也是官方推荐的方式,但是也有一定的局限性,就是Intent无法传递不能序列化的对象。我们可以使用静态变量来解决这个问题。在接受类中定义静态变量
3. **静态变量**:创建全局静态变量,可以方便地在PopupWindow和Activity之间共享数据。但是,这种方法不推荐在大型项目中使用,因为它可能导致数据同步问题和内存泄漏。 4. **BroadcastReceiver**:注册一个...
2.通过静态变量(static)传递数据 3.通过剪贴板(Clipboard)传递数据 4.通过全局对象传递数据 在TransmitDataActivity.java中 package mobile.android.transmit.data; public class TransmitDataActivity ...
在Android应用开发中,Activity是用户界面的基本单元,它们之间的数据传递是十分常见的操作。本文将详细介绍Android中Activity之间数据传递的多种方式及其适用场景。 一、Intent传递数据 Intent是Android系统中...
- **使用静态方法或成员变量**:在同一个Activity内的Fragment间,可以直接通过静态方法或共享成员变量进行数据交换,但这种方式不利于代码的维护和扩展。 **4. Fragment的切换** Fragment的切换通常通过...
在Android应用开发中,Activity是用户界面的基本单元,它们之间常常需要进行数据的传递。"Activity review activity之间的数据传递"这个主题聚焦于如何在不同的Activity之间有效地传递信息。理解并熟练掌握这一技能...
- **静态成员变量**:虽然不推荐,但在某些特定情况下,可以使用Activity的静态成员变量进行数据共享。 - **ContentProvider**:对于大量数据或跨应用数据传递,ContentProvider是一种标准机制,但它涉及到更多的...
本教程将详细讲解如何在两个Activity之间实现数据传递,主要涉及三种常见方法:Intent的Extra数据、Bundle对象以及使用静态成员变量。我们首先从Intent的Extra数据开始。 1. **Intent的Extra数据**: Intent是...
当我们需要在两个Activity之间传递数据时,通常有多种方法,如Intent、Bundle、静态变量、文件、数据库等。本教程将聚焦于一种更为灵活的方式:通过接口进行数据传递。这种方式在某些复杂场景下特别有用,例如当数据...
7. **Activity间的通信方式**:除了Intent,还有其他方式在Activity间通信,如使用静态变量、BroadcastReceiver、Fragment、ViewModel等。但是,Intent是最常用且灵活的方法,尤其适合简单的数据传递。 在这个...
本文将详细讨论如何在Android中实现Activity之间传递List数据。 首先,理解Intent的基本用法。Intent主要用于启动其他Activity或BroadcastReceiver,同时可以携带少量数据。通过putExtra()方法,我们可以传递基本...
在Android开发中,静态变量(`static`)的使用是一个重要的议题,因为它涉及到应用程序的内存管理、生命周期以及可能引发的问题。下面将详细讨论以下几个方面: 1. **静态变量的生命周期**: - 静态变量在类被加载...
在Android中,数据的传递方式多样,包括Intent、Bundle、静态成员变量、文件、ContentProvider、数据库等。其中,Intent和Bundle是最常用的方式,已经在前面的部分有所介绍。静态成员变量适用于简单数据的跨Activity...
7. **静态变量与全局对象**: 虽然不推荐,但在某些情况下,可以使用静态变量或全局对象来间接传递数据。这种方法可能会导致数据泄露和难以调试的问题,因此应谨慎使用。 8. **事件总线**:对于更复杂的场景,如多个...
在Android应用开发中,Activity是用户界面的基本单元,经常需要在不同的Activity之间传递数据来实现功能的联动。本文将深入探讨如何在Android的Activity之间共享数据,并提供代码实例供开发者参考。 首先,我们来...
总结,"Activity间数据传输案例demo"主要展示了如何使用Intent和Bundle在Android应用的不同Activity之间传递数据,包括基本类型、复杂对象以及批量数据。对于初学者来说,理解并熟练运用这些方法,是掌握Android开发...
在我们的示例中,我们需要将用户的身高数据从一个Activity传递到另一个Activity,以便计算标准体重。 1. **创建Intent**: 在源Activity中,我们可以通过`Intent intent = new Intent(this, DestinationActivity....
当需要在不同的Activity之间传递数据时,Android提供了多种方式来实现这一功能。本文将深入探讨如何在Android中实现在Activity之间直接传递值。 一、Intent的使用 Intent是Android中用于启动另一个组件(如...
3. **静态成员变量**:虽然不推荐,但有时为了简单快速地传递数据,开发者可能会使用类的静态成员变量。然而,这种方法存在内存泄漏的风险,且不易于管理。 4. **文件共享**:对于大数据量如图片、音频等,可以通过...