【问题标题】:NullPointerException in Opening Android Activity [duplicate]打开 Android Activity 时出现 NullPointerException [重复]
【发布时间】:2016-03-02 00:24:03
【问题描述】:

当我从其他布局中投射元素时,出现此错误。

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)' 空对象引用

【问题讨论】:

  • 你是在Activity里面运行这个吗?
  • 不,它位于调用我的 Activity 之前。我希望它是一个全局变量。
  • 这个 sn-p 中缺少大量代码来准确回答问题。如果不是太大,您能否发布整个类和方法声明。至少整个方法以及它包含在哪个类中会有所帮助。
  • 分享您的 XML 代码,并告诉您是否在 setContentView 之后放置上述代码?

标签: android android-activity


【解决方案1】:

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

如果你这样做了,那么 findViewById 将不起作用,因为尚未创建窗口。

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

【讨论】:

    【解决方案2】:

    将您的代码放在 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);
    

    然后实例化它们。

    【讨论】:

    • 好的,非常感谢您,先生 :)
    • @Jellolicious 如果对您有帮助,请接受答案。谢谢
    【解决方案3】:

    你需要在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);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多