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

时间:2017-11-13 21:29:16

标签: java android

我想从另一个非活动类更改TextView。我在 adapost&#39> 帖子中看到了How to update a TextView of an activity from another class的答案,但我不知道如何正确地将上下文传递给" ClassB"。

在大班课程中,我尝试了ClassB obj = new ClassB(this);ClassB obj = new ClassB(getApplicationContext());。但每次TextView txtView = (TextView)findViewById(R.id.text);都会返回NullPointerException。

我确信我在setContentView之后执行此操作,我可以在Main类中实现此textView。

如何传递上下文以使其有效?

2 个答案:

答案 0 :(得分:0)

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

cFile.Skip(1000)

但是对于活动活动,你可以制作所有那些将在外面使用的变量"静态"。

答案 1 :(得分:0)

问题是Id资源。当TextView的Id设置为std::map<Item, int> items; for(Item const& item : inventory) { items[item]++; } for(auto const& pair : items) { std::cout << pair.first.getItemName() << ": (" << pair.second << ")" << std::endl; } 时,该对象返回NullPointerException。当我创建Id xml资源时,添加了一个项@+id/text并且在活动xml <item type="id" name="tv_zero" />中应用程序工作正常。 我在android:id="@id/tv_zero"ClassB ObjOne = new ClassB(this);

主要打电话给它