java - Onclick 监听器抛出 NullPointerException

标签 java android android-layout

我已经设置了一个按钮,我试图在用户点击它时显示 toast 辞。这是我的 Java 代码 -

file = (Button) findViewById(R.id.file);

file.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // Display the file chooser dialog
                //showChooser();
                Toast.makeText(getApplicationContext(), "this is my Toast message!!! =)", Toast.LENGTH_LONG).show();
            }
        });

这是我设置按钮的 XML 代码 -

<Button
            android:id="@+id/file"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/plt"
            android:text="File" />

这会在 file.setOnClickListener(new OnClickListener() { 行上引发 NullPointerException。我做错了什么?

最佳答案

您是否在 Activity 的 onCreate() 方法中初始化 Button?

如果是这样,请检查您是否正在打电话

setContentView(R.id.yourlayoutfile);

在使用 findViewById(R.id.file); 初始化 Button 之前

您的错误发生是因为您的 Button"file"是 null,这意味着 findViewById(...) 没有找到任何具有该 ID 的 View . 因此,原因可能是在展开的布局中没有这样的 ID,或者您没有调用 setContentView(...)

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.yourlayoutfile);

        // initialize your button here  
    }

关于java - Onclick 监听器抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18296530/

相关文章:

android - 只有在 GridLayout 中显示 ViewGroup 的第一个 subview - 后续单元格在视觉上是无 subview 的

java - 框架布局 : How to add other Views on top of GLSurfaceView?

Java - 如何获得独立于系统日期的当前日期?

java - WordPress、CMS Made Simple 还是其他?

java - 将 Julian 日期转换为常规日历日期

android - 在可扩展 ListView 的屏幕顶部移动/滚动单击的列表项 View

Android 自定义 IME 在屏幕键盘上使用默认值

android - 如何使多个不同的屏幕配置映射到一小组布局,而不必复制我的布局 XML 的某些部分?

java - 无法从我的 WebView 在 Whatsapp 上共享。获取 无法加载位于 Whatsapp://send?text= 的网页,因为 net::ERR_UNKNOWN_URL_SCHEME

android-layout - Android UI 行为有时会抛出 NullPointerException