我想从另一个非活动类更改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。
如何传递上下文以使其有效?
答案 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);