java - 无法对基本类型 int 调用 findViewById(int)

标签 java android android-layout android-spinner

我想从 Android 应用程序中的微调器中获取选定的值。

我尝试如下操作,因为我的微调器位于弹出对话框中

final Spinner problems = (Spinner) layout.input_dialog.findViewById((R.id.spinner_problems));
              problems.setOnItemSelectedListener(new OnItemSelectedListener(){

                 @Override
                 public void onItemSelected(AdapterView<?> adapter, View view1, int pos, long id)
                 {
                     spin_problem_val = adapter.getItemAtPosition(pos).toString();
                 }

                @Override
                public void onNothingSelected(AdapterView<?> arg0) {
                    // TODO Auto-generated method stub

                }
            });

声明final Spinner issues = (Spinner)layout.input_dialog.findViewById((R.id.spinner_problems));给我错误Cannot调用原始类型int上的findViewById(int)

为什么会这样?

如果我像这样尝试final Spinner issues = (Spinner) findViewById((R.id.spinner_problems));

我会得到NullPointerException

input_dialog 是我的 input_dialog.xml 对话框弹出窗口,我的微调器位于

<Spinner
        android:id="@+id/spinner_problems"
        android:entries="@array/problems"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"       
         />

最佳答案

请确保在设置布局之后运行此代码。 当您在加载布局之前尝试访问 View 时,通常会发生此错误。

请检查此代码是否在您的 onCreateView 函数设置布局之后运行。

关于java - 无法对基本类型 int 调用 findViewById(int),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25322068/

相关文章:

java - 返回本地或远程的决定

java - HibernatebulkUpdate() 以 List 作为参数

android - 单击 ListView 项时更新 TextView 中的值

android - 如何以编程方式更改单选按钮的圆圈颜色?

android - 如何创建包含两边带有按钮的 TextView 的布局

java - C++ 与 Java : endless loop creating objects only crashes C++

java - 如何从 Spring messageSource 手动重新加载属性文件

javascript - react 原生 : App crashes on start due to SoLoader issue

Android shell EOF

android - 如何去除出现在底部的黑条?