Android findViewById 抛出 NullPointerException

标签 android nullpointerexception viewflipper

我在单独的类中定义了一个 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/

相关文章:

java - 动画控制Jmonkey

java - MIDLet 中的 nullPointerException

android - 在安卓中使用 ViewFipper

java - 如何在android中使用ViewFlipper从ImageURLs的ArrayList制作幻灯片?

android - 错误 : package com. google.gson.annotations 不存在

android - TelephonyManager.getCellLocation 在某些设备中崩溃请求 READ_PHONE_STATE 权限

android - 传递结果失败 ResultInfo{who=null, request=100, result=-1, data=Intent

Android:ViewBinding 的 ScrollView 内没有可用的 View ID。如何访问?

android - 在android中测量设备的精确旋转角度

安卓泄露窗口?