更改其他活动中的文本

发布于 2024-11-18 14:40:21 字数 199 浏览 3 评论 0原文

如何从屏幕的另一部分动态更改 TextView 的内容?

我有一个TabActivity 类,它绘制一个RelativeLayout,其中包含一个TextView,后跟一个带有多个选项卡的。每个选项卡内都有一个单独的 Intent。从选项卡意图之一,我想更改父 TabActvity 中 TextView 的文本(通过 .setText)。

这可能吗?

How to dynamically change the content of a TextView from another part of the screen?

I have a TabActivity class that draws a RelativeLayout that contains a TextView followed by a with several tabs. Within each tab is a separate Intent. From one of the tab intents, I would like to change the text (via .setText) of the TextView from the parent TabActvity.

Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一抹微笑 2024-11-25 14:40:21

您应该使用 Android 架构组件

您可以创建一个 ViewModel 包含 LiveData 的数据对象 (LiveData 如果您只想更改文本)。

当您从一个 ActivityFragment 更改实时数据对象时,观察该实时数据对象的所有其他活动和片段都会收到通知。

官方 API 文档有完整的示例和说明

You should use Android Architecture Components :

You can create a ViewModel containing LiveData of your data object (LiveData<String> in case you want to change only text).

When you will change your live data object from one Activity or Fragment all other Activities and Fragments observing for this live data object will get notified.

Official API doc has complete example with description.

似狗非友 2024-11-25 14:40:21

在 TabActivity 中创建一个公共方法来设置 TextView 的文本,然后从子活动中调用 getParent(),将其转换为 TabActivity 类,然后调用该公共方法。

Make a public method in your TabActivity that sets the TextView's text, then call getParent() from the child activity, cast it to your TabActivity class, then call that public method.

横笛休吹塞上声 2024-11-25 14:40:21

您可以尝试为父选项卡实现一个处理程序来完成这项工作。从每个各自的选项卡传递消息对象中的文本。为了安全起见,请在 runOnUI 块内的处理程序中进行更改

You could try implementing a handler for the parent Tab which does the job. Pass the text in a message object from each of your respective tabs. To be safe, make changes within the handler inside a runOnUI block

oО清风挽发oО 2024-11-25 14:40:21

在更改 asynctask 文件中的文本的情况下,您需要使用侦听器实现接口。示例:

AsynctaskFile:

OnReadyListener onReadyListener;

public class ABCAsynctaskFile{

   ...

   onReadyListener.onReady();

}

public interface OnReadyListener{

void onReady();

}


public void setOnReadyListener(OnReadyListener onReadyListener){

this.onReadyListener = onReadyListener;

}

ActivityFile:

public class ABC extends AppCompactActivity implements ABCAsynctaskFile.OnReadyListener{
   ..

   ABCAsynctaskFile aBCAsynctaskFileObj = new ABCAsynctaskFile(context);

   aBCAsynctaskFile.setOnReadyListener(ABC.this)

}

@Override

public void onReady(){

   // Your wished changed in edit text.

}

此结构将帮助您防止空指针异常。

In a case of changing text from asynctask file, you need to implement an interface with a listener. Example:

AsynctaskFile:

OnReadyListener onReadyListener;

public class ABCAsynctaskFile{

   ...

   onReadyListener.onReady();

}

public interface OnReadyListener{

void onReady();

}


public void setOnReadyListener(OnReadyListener onReadyListener){

this.onReadyListener = onReadyListener;

}

ActivityFile:

public class ABC extends AppCompactActivity implements ABCAsynctaskFile.OnReadyListener{
   ..

   ABCAsynctaskFile aBCAsynctaskFileObj = new ABCAsynctaskFile(context);

   aBCAsynctaskFile.setOnReadyListener(ABC.this)

}

@Override

public void onReady(){

   // Your wished changed in edit text.

}

This structure will help you to prevent null pointer exception.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文