java - 如何设置来自另一个 Activity 类的文本

标签 java android android-activity textview

我被这个问题困了太久了。我认为这很简单,但我是新手 android 开发人员,因此非常感谢您的帮助。

我有两个 Activity 。我的主要 Activity 布局有一个 TextView 和一个按钮。我想要做的是实现按钮以更改来自另一个 Activity 类(Btn 类)的 TextView 的文本。

这是我的 Btn 类

public class Btn extends Activity implements OnClickListener {
    Button btn;
    TextView textBox;

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        btn = (Button) findViewById(R.id.btn);  
        textBox = (TextView)findViewById(R.id.address);
        btn.setOnClickListener(this);           
    }

    @Override
    public void onClick(View v) {
        textBox.setText("Test Test");
    }

}

现在编译并工作正常,但是当我按下按钮时没有任何反应。 我想知道按下按钮时如何更改 TextView 的文本。我知道如何在我的主要 Activity 课上做到这一点,但我想从另一个课上做到这一点。

最佳答案

即使你真的是一个彻头彻尾的新手,在Activity之后第二个要学的就是Intent。 一个 Activity 不需要从另一个 Activity 检索对象的数据和属性并将更改直接发送给它们,这对运行时来说是不安全的,因为您不能 100% 确定后台 Activity 不会被系统杀死。 因此发明 Intents 是为了调用 Activity 并将数据传递给它们。 Android Coders 提供的代码以这种方式工作。首先,您创建一个 Intent 对象,放入额外的数据(例如您要设置到另一个 Activity 的 TextView 的文本),最后启动一个负责此类 Intent 的 Activity。在这段代码中,Intent是显式的,也就是说应该调用某个包的某个Activity。在此 Activity 中,有一个代码检查是否有 Intent 被调用,从中读取额外数据(您的文本)并最终调用 setText()。 根据数据和操作的类型,还有隐式 Intent 。系统可以让您在设备上存在的所有包的所有 Activity 之间进行选择,它可以处理您提供给 Intent 的数据类型。 没有什么私有(private)的,但是如果你不能理解 Intents,你就不会理解 Android。非常努力地尝试。

关于java - 如何设置来自另一个 Activity 类的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27646251/

相关文章:

java - 如何为 JNDI InitialContext 的 PROVIDER_URL 指定驱动器号(windows)

java - Android 上的文件“即时”解包

android - 来自 maven 的 aar 导致 ClassNotFoundException。不包括 aar 的依赖项

Android FLAG_ACTIVITY_CLEAR_TOP 无法正常工作?

android - overridePendingTransition() 不工作

java - 使用 JAXB 解码列表

java - 关于javaagents的教程

php - 将pdf文件上传到服务器并获取其url

android - 2 天前 XML 布局运行完美,现在(没有结构变化)它给我错误?

java - 使用java查询mongo oplog的时间戳字段