java - 从另一个 Activity 获取textView的文本

标签 java android android-intent static textview

我正在尝试从位于 2 类中的 textview 获取文本,以便通过按按钮在 1 类中使用它。我通过发送 Intent 来做到这一点,但我收到了内容错误。这就是我想要发送的内容(从 2 类到 1 类):

public static void intent_send(){
Intent i = new Intent();
i.putExtra("number",Integer.parseInt(text_view_current_page.getText().toString()));
class2.startActivity(i);
}

text_view_current_page是静态的TextView,否则这个void有错误。我通过按下类 1 中的按钮来将此称为 void:

Class2.intent_send();
Intent i = getIntent();
Bundle b = i.getExtras();
PagerNumber = b.getInt("number");

我的内容定义行有错误:

i.putExtra("number",Integer.parseInt(text_view_current_page.getText().toString()));

我应该如何处理这个textView才能通过按下按钮从另一个类获取它的文本?它应该是静态的还是应该在接收 Intent 的类中声明它?

最佳答案

在 Android Activity 中,组件是完全分离的,因此它们不能直接访问彼此的东西。它们有自己的窗口和 View 层次结构,仅对所有者 Activity 本身是私有(private)的。

尽管如此, Activity 之间还是有几种交互方式。

  1. 当您通过 Intent 开始第二个 Activity 时发送数据。
  2. 利用 Application 对象作为所有应用组件之间的共享对象。
  3. 注册 Activity 中的广播接收器,您可以通过它在 Activity 之间发送信号。

我对您的案例的建议:

如果在您的情况下,第二个 Activity 应该与第一个 Activity 有非常密切的关系(例如访问其 View 层次结构),您可以将第二个 Activity 实现为对话框或 fragment 而不是 Activity 。

关于java - 从另一个 Activity 获取textView的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32780665/

相关文章:

java - Grails 1.3.1 : Improved Query Caching

java - 定义默认 Portlet 操作方法

android - 屏幕截图 :get Bitmap from Textureview and display in imageview android

android - Google Play 游戏登录流程

android - 没有从android中的文档中获取所选文件的实际视频路径

android - 选择墙纸并突出显示墙纸区域的 Intent

java - onButtonClick 从未在源代码中使用过?

java - 使用 Jackson 进行序列化和反序列化时处理某些字段的不同类型

java - Android 中的文件浏览器

java - 澄清 Android Activity onPause 和 onRestart