gpt4 book ai didi

android - findViewById() 在非 MainActivity 类中不起作用

转载 作者:IT老高 更新时间:2023-10-28 22:24:38 25 4
gpt4 key购买 nike

我的 Lyout 中有一个 TextView ,我想在这个 TextView 中设置一些文本。这应该在不是 MainActivity 类的类中进行。

问题是我得到了一个空指针异常。

这是我的代码:

public class UserInformations extends Activity{

TextView emailTextView;
LocalDatabase localdatabase= new LocalDatabase(this);


public void getUserInformation()
{
emailTextView = (TextView) findViewById(R.id.EmailTextView);
String email = localdatabase.getUserEmail();
emailTextView.setText(email);
}
}

当我在 Main Activity 类中执行此操作时,它可以工作,但它在其他类中不起作用。

最佳答案

仅当当前 Activity 布局由 setContentView 设置时,对 Activity 对象调用 findViewById() 才会起作用。如果通过其他方式添加布局,则需要布局的View对象并在其上调用findViewById()

View v = inflater.inflate(id_number_of_layout); # such as R.layout.activity_main
View innerView = v.findViewById(id_number_of_view_inside_v);

如果布局应该是 Activity 的主要布局,那么这样做:

public class MyActivity extends Activity{
TextView emailTextView;

@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(id_number_of_layout);
emailTextView = (TextView) findViewById(R.id.EmailTextView);
// ... whatever other set up you need to do ...
}

public void getUserInformation() {
// .... regular code ...
}
}

关于android - findViewById() 在非 MainActivity 类中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9228777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com