2014-12-13 2 views
-2

I'am이 MVC 내 프로그램 작업을 사용하지 않는,하지만 난 그게 을 java.lang.NullPointerException이 켤 때 나는 이해할 수 없다, 나는 최근에 안드로이드와 자바안드로이드 MVC java.lang.NullPointerException이

을 공부

코드 :

modelbike.java

private int[][] bike; 
private int leg; 
private int height; 

public int[][] getBike() { 
    return bike; 
} 

public void setBike(int[][] bike) { 
    this.bike = bike; 
} 

// another Getters and Setters 

ControllerRoadbike.java

Modelbike m = new Modelbike(); 
public void initRoadbike(){ 
    final int[][] RoadBike = { 
      {165, 0, 142, 64, 43, 65, 44, 66, 45, 67 ..}, 
      {165, 0, 143, 64, 43, 65, 44, 66, 45, 67 ..}, 
      . 
      .}; // roadbike[][] is 61 x 27 
    m.setBike(RoadBike); 
} 

public ArrayList<String> showHeight(){ 
     ArrayList<String> height = new ArrayList<String>(); 
     for(int i=142; i<203; i++){ 
      height.add(""+i); 
     } 
     return (height); 
} 
public ArrayList<String> showLeg(){ 
    ArrayList<String> leg = new ArrayList<String>(); 
    for (int i = 0; i < 61; i++) { 
     if (m.getBike()[i][2] == m.getHeight()) { 
      for (int j = 3; j < 27; j += 2) { 
       if (m.getBike()[i][j] != 0) { 
        leg.add("" + m.getBike()[i][j]); 
       } 
      } 
     } 
    } 
    return (leg); 
} 
,

Calculate_roadbike.java

12-13 14:02:21.295: E/AndroidRuntime(3911): FATAL EXCEPTION: main 
12-13 14:02:21.295: E/AndroidRuntime(3911): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gilsur.cfbike/com.gilsur.cfbike.Calculate_roadbike}: java.lang.NullPointerException 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at android.app.ActivityThread.access$600(ActivityThread.java:130) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at android.os.Looper.loop(Looper.java:137) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at java.lang.reflect.Method.invoke(Method.java:511) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at dalvik.system.NativeStart.main(Native Method) 
12-13 14:02:21.295: E/AndroidRuntime(3911): Caused by: java.lang.NullPointerException 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at com.gilsur.cfbike.Calculate_roadbike.showSpinnerHeight(Calculate_roadbike.java:119) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at com.gilsur.cfbike.Calculate_roadbike.onCreate(Calculate_roadbike.java:36) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at android.app.Activity.performCreate(Activity.java:5008) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
12-13 14:02:21.295: E/AndroidRuntime(3911):  ... 11 more 

이 도와주세요

public class Calculate_roadbike extends ActionBarActivity { 

private ControllerRoadbike c = new ControllerRoadbike(); 
private Modelbike m = new Modelbike(); 
private Spinner sp_height; 
private Spinner sp_Leg; 
private Menu mainMenu; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_calculate_roadbike); 
    c.initRoadbike(); 
    showSpinnerHeight();    
} 

private void showSpinnerHeight(){ 
    sp_height = (Spinner) findViewById(R.id.sp_height); 
    m.setHeight(Integer.parseInt(sp_height.getSelectedItem().toString()));   
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String> 
    (this, android.R.layout.simple_spinner_item,c.showHeight()); 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    sp_height.setAdapter(dataAdapter); 

    sp_height.setOnItemSelectedListener(
      new OnItemSelectedListener() { 
       public void onItemSelected(
        AdapterView<?> parent, View view, int position, long id) { 
         showleg(); 
       } 
       public void onNothingSelected(AdapterView<?> parent) {  
       } 
      }); 
} 

private void showleg(){ 
    sp_Leg = (Spinner) findViewById(R.id.sp_leg); 
    ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String> 
    (this, android.R.layout.simple_spinner_item,c.showLeg()); 
    dataAdapter1.setDropDownViewResource 
    (android.R.layout.simple_spinner_dropdown_item); 
    sp_Leg.setAdapter(dataAdapter1); 
} 

} 

로그 캣 ..

+0

포스트 로그 캣하시기 바랍니다. – Rami

+0

스택 트레이스는 어디에 있습니까? Null 포인터 예외를 정확히 발생시키는 행은 무엇입니까? – SMA

+0

sp_Leg는 null 일 수 있습니다. 올바른 레이아웃을 올바르게 표시 하시겠습니까? – Adem

답변

0

나는 아무것도 처음에 선택하지 않기 때문에 sp_height.getSelectedItem()null 생각합니다. nulltoString()으로 전화하면 NullPointerException이됩니다.

+0

아, 감사합니다 .. – Gsurha

0

가장 좋은 방법은 Android 설명서를 확인하는 것입니다. 워드 프로세서 :

또한
public Object getSelectedItem() 

Added in API level 1 
Returns 
The data corresponding to the currently selected item, or null if there is nothing selected. 

, sp_height가 null이 될 수있다 (하지만 난 당신이 XML에서 올바르게 참조했습니다 가정, 그래서 그것을 배제됩니다.)

관련 문제