在主Activity以外的类中使用findViewById()
时返回null,这是因为findViewById()
方法是在Activity的视图层次结构中查找视图的。当在其他类中使用findViewById()
时,它无法访问到Activity的视图层次结构,因此返回null。
为了解决这个问题,可以将视图查找的操作移到Activity中,然后将查找到的视图传递给其他类。例如,可以在Activity中创建一个方法来查找视图,并将其传递给其他类。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.textView);
OtherClass otherClass = new OtherClass();
otherClass.doSomething(textView);
}
}
public class OtherClass {
public void doSomething(TextView textView) {
// 在这里可以使用textView
}
}
在这个例子中,findViewById()
在Activity中被调用,然后将查找到的视图传递给OtherClass
的doSomething()
方法。这样,就可以避免在其他类中使用findViewById()
时返回null的问题。
领取专属 10元无门槛券
手把手带您无忧上云