gpt4 book ai didi

Android findViewById 抛出 NullPointerException

转载 作者:行者123 更新时间:2023-11-29 16:17:22 25 4
gpt4 key购买 nike

我在单独的类中定义了一个 ViewFlipper。它看起来像这样:

public class Flipper extends Activity {
public ViewFlipper view_flipper;

/* Constructor */
public Flipper(int flipper_id) {
view_flipper = (ViewFlipper) findViewById(flipper_id);
}
...

然后在另一个 Activity 的 onCreate() 方法中,我将像这样实例化 Flipper:

private Flipper flipper;
flipper = new Flipper(R.id.login_screen_flipper);

但是,我在 Flipper 的构造函数中得到了一个 NullPointerException。当我调试时,我看到 flipper_id 有一个有效的 id。我做错了什么?

最佳答案

您不能像这样创建 Activity 。

要创建 Activity ,您必须使用 Intents 来完成.您必须在 XML 文件中定义布局并使用 setContentView(R.layout.layout_name); 附加它;

看看这个开始学习:https://developer.android.com/training/index.html


更新:

好的,目前还不清楚您使用问题信息完成了什么。

如果您要扩展 ViewFlipper 的行为,我建议您扩展它:

package your.package;

public class MyFlipper extends ViewFlipper {
// ...
}

然后像这样在你的 xml 中使用它:

<your.package.ViewFlipper
[...] parameters [...] />

最后,当你实现它时,你可以这样做:

public class YourActivity extends Activity {

public ViewFlipper viewFlipper;

@Override
protected void onCreate (Bundle savedInstanceState) {
viewFlipper = (ViewFlipper) findViewById(R.id.login_screen_flipper);
}

// ... more activity stuff
}

PS:使用 lowerCamelCase 是个好习惯Java 成员变量(或 Java 中的字段)中的表示法

关于Android findViewById 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581299/

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