2016-12-02 9 views
0

Итак, если это не очевидно, знаю новичок в этом Я работаю с Intent, чтобы открыть новое мероприятие (Main2Activity) Все работает отлично, пока ничего не происходит (Main2Activity).крах приложения по щелчку намерения

В тот момент, что я сделать любую вещь в Main2Activity он выходит из строя,
, например:

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.WindowManager; 
import android.widget.Button; 
import android.widget.CheckBox; 
import butterknife.BindView; 
import butterknife.ButterKnife; 
import butterknife.OnClick; 
public class MainActivity extends AppCompatActivity { 
    @BindView(R.id.checkbox_diabetic) 
    CheckBox diabetes; 
    @BindView(R.id.firs_next_button) 
    Button nextbutton; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ButterKnife.bind(this);  getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
    } 
    @OnClick(R.id.firs_next_button) 
    public void setNextbutton(View view) { 
     Intent intent = new Intent(MainActivity.this, Main2Activity.class); 
     startActivity(intent); 
    } 
} 

и:

package com.mhs.myapplication; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.CheckBox; 

import butterknife.BindView; 
import butterknife.OnClick; 

public class Main2Activity extends AppCompatActivity { 

    @BindView(R.id.diabetes_type_spinner) 
    LabelledSpinner diabetestypes; 
    @BindView(R.id.checkbox_diabetic) 
    CheckBox diabetes; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     Intent intent = getIntent(); 
    } 
} 

это работает как волшебство и деятельности открытой без каких-либо проблем.

Но как только я добавляю вещь в Main2активность, она падает при нажатии следующей кнопки. Например: доклад

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.CheckBox; 
import butterknife.BindView; 
import butterknife.OnClick; 

public class Main2Activity extends AppCompatActivity { 
    @BindView(R.id.diabetes_type_spinner) 
    LabelledSpinner diabetestypes; 
    @BindView(R.id.checkbox_diabetic) 
    CheckBox diabetes; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main2); 
     Intent intent = getIntent(); 

     diabetestypes.setItemsArray(R.array.diabetes_type_list); 
    } 
} 

аварии:

E/AndroidRuntime: FATAL EXCEPTION: main 
        Process: com.mhs.myapplication, PID: 27891 
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mhs.myapplication/com.mhs.myapplication.Main2Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.mhs.myapplication.LabelledSpinner.setItemsArray(int)' on a null object reference 
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2484) 
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544) 
         at android.app.ActivityThread.access$900(ActivityThread.java:150) 
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394) 
         at android.os.Handler.dispatchMessage(Handler.java:102) 
         at android.os.Looper.loop(Looper.java:168) 
         at android.app.ActivityThread.main(ActivityThread.java:5845) 
         at java.lang.reflect.Method.invoke(Native Method) 
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) 
        Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.mhs.myapplication.LabelledSpinner.setItemsArray(int)' on a null object reference 
         at com.mhs.myapplication.Main2Activity.onCreate(Main2Activity.java:22) 
         at android.app.Activity.performCreate(Activity.java:6248) 
         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125) 
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2437) 
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544)  
         at android.app.ActivityThread.access$900(ActivityThread.java:150)  
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394)  
         at android.os.Handler.dispatchMessage(Handler.java:102)  
         at android.os.Looper.loop(Looper.java:168)  
         at android.app.ActivityThread.main(ActivityThread.java:5845)  
         at java.lang.reflect.Method.invoke(Native Method)  
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)  
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)  
+1

разместим ваших аварий – Rahil2952

+0

@ Rahil2952 сделано – sona

+0

пожалуйста, добавьте код для пользовательского просмотра LabelledSpinner – Rahil2952

ответ

1

масло нож не связывает взгляды магически. Вы должны добавить

ButterKnife.bind(this); 

до Main2Activity также. Как это:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    ButterKnife.bind(this); // Need to add this! 
    Intent intent = getIntent(); 
} 
+0

хорошо, спасибо за ваш ввод попробовали, что и не работал – sona

+0

Ну, есть вероятность, что у вас нет представления в вашем макете. – tynn

0

@tynn

так вместо того, чтобы делать

import android.content.Intent; 
 
import android.support.v7.app.AppCompatActivity; 
 
import android.os.Bundle; 
 
import android.view.View; 
 
import android.widget.CheckBox; 
 
import butterknife.BindView; 
 
import butterknife.OnClick; 
 

 
public class Main2Activity extends AppCompatActivity { 
 
    @BindView(R.id.diabetes_type_spinner) 
 
    LabelledSpinner diabetestypes; 
 
    @BindView(R.id.checkbox_diabetic) 
 
    CheckBox diabetes; 
 
    @Override 
 
    protected void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.activity_main2); 
 
     Intent intent = getIntent(); 
 

 
     diabetestypes.setItemsArray(R.array.diabetes_type_list); 
 
    } 
 
}

Я сделал

package com.mhs.myapplication; 
 

 
import android.support.v7.app.AppCompatActivity; 
 
import android.os.Bundle; 
 
import android.view.View; 
 
import android.view.WindowManager; 
 
import android.widget.LinearLayout; 
 

 
import butterknife.ButterKnife; 
 

 

 
public class Main2Activity extends AppCompatActivity { 
 

 

 

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

 

 
     LabelledSpinner diabetess_type = (LabelledSpinner) findViewById(R.id.diabetes_type_spinner); 
 
     diabetess_type.setItemsArray(R.array.diabetes_type_list); 
 
     diabetess_type.setColor(R.color.white); 
 
     LinearLayout linearLayout = (LinearLayout) findViewById(R.id.diabetes_layout); 
 
     linearLayout.setVisibility(View.GONE); 
 
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
 
      ButterKnife.bind(this); 
 

 
     } 
 

 
    } 
 

 
}

и сюрприз удивлению, он работает