繁体   English   中英

将上下文传递给另一个类并更改活动的TextView

[英]pass a context to another class and change a TextView of an activity

我想从另一个非活动类更改TextView。 我在这里看到了答案, 如何adapost的帖子中从另一个类更新活动的TextView ,但是我不知道如何正确地将上下文传递给“ ClassB”。

在主类中,我尝试了ClassB obj = new ClassB(this); ClassB obj = new ClassB(getApplicationContext()); 但是每次, TextView txtView = (TextView)findViewById(R.id.text); 返回NullPointerException。

我确定我可以在setContentView之后执行此操作,我可以从Main类获得此textView。

如何传递上下文使其起作用?

在另一个类中创建该活动的对象。 在构造函数中传递活动并将其附加到对象。 这样,活动中的所有公共变量和方法都将在另一个类中检索。

class B {
final MyActivity activity;
public B(MyActivity activity) {
this.activity = activity;
}
// here you can access all public field variables and methods of MyActivity.
}

但是对于活动到活动,您可以使所有将在“静态”之外使用的变量。

问题是Id资源。 当TextView的ID设置为@+id/text ,该对象返回NullPointerException。 当我创建Id xml资源时,添加了一个<item type="id" name="tv_zero" />并在xml活动中android:id="@id/tv_zero"应用程序正常运行。 我主要通过ClassB ObjOne = new ClassB(this);调用它ClassB ObjOne = new ClassB(this); ObjOne.Update();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM