2016-03-01 58 views
-1

当我从其他布局中投射元素时,出现此错误。显示java.lang.NullPointerException:通过打开Android活动中的NullPointerException

final Spinner mainIng = (Spinner) findViewById(R.id.spinner); 
final EditText sub1 = (EditText) findViewById(R.id.sub1); 
final EditText sub2 = (EditText) findViewById(R.id.sub2); 
final EditText sub3 = (EditText) findViewById(R.id.sub3); 
final EditText sub4 = (EditText) findViewById(R.id.sub4); 
final EditText sub5 = (EditText) findViewById(R.id.sub5); 
final EditText sub6 = (EditText) findViewById(R.id.sub6); 

继承人我错误

引起试图调用虚拟方法 'android.view.View android.view.Window.findViewById(INT)' 上的 空对象引用

+0

你在'Activity'里面运行这个吗? – giannisf

+0

不,它位于我的活动被调用之前。我希望它是一个全局变量。 – Jellolicious

+0

这段代码中缺少大量的代码来准确回答问题。如果它不是太大,你可以发布整个类和方法声明吗?至少整个方法和它所包含的类是有帮助的。 – Bobbake4

回答

0

将您的代码放在您的活动中的 setContentView之后。

如果您希望它们在您的活动的每种方法中都可用,请将它们声明为字段。

public class MyActivity extends Activity { 
     Spinner mySpiner; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.my_layout); 

     mySpiner = (Spinner) findViewById(R.id.mySpiner); 

然后实例化它们之后。

+0

好的,非常感谢你,先生:) – Jellolicious

+0

@Jellolicious如果帮助你,请接受答案。谢谢 – giannisf

0

您需要初始化意见onCreate()

public class YourActivity extends Activity { 
Spinner mainIng; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.your_activity_xml); 
    mainIng= (Spinner) findViewById(R.id.spinner); 
} 
1

你是从onCreate()调用这个吗?如果是,请尝试将其移动到onCreateView(),并使用虚拟视图调用它,或者稍后再调用它。

如果你这样做然后findViewById将无法正常工作,因为该窗口尚未创建。

findViewById() returns null when I call it in onCreate()

相关问题