我被这个问题困了太久了。我认为这很简单,但我是新手 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/