当我从其他布局中投射元素时,我收到了这个错误。
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);
继承我的错误
引起:java.lang.NullPointerException:尝试调用虚拟 方法'android.view.View android.view.Window.findViewById(int)'上的一个 null对象引用
答案 0 :(得分:1)
你是从onCreate()调用的吗?如果是,请尝试将其移至onCreateView()并使用膨胀的视图调用它或稍后调用它。
如果你这样做,那么findViewById将无效,因为尚未创建窗口。
答案 1 :(得分: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);
}
答案 2 :(得分: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);
然后在之后实例化它们。