Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android mvc java.lang.NullPointerException_Java_Android_Nullpointerexception - Fatal编程技术网

android mvc java.lang.NullPointerException

android mvc java.lang.NullPointerException,java,android,nullpointerexception,Java,Android,Nullpointerexception,当我不使用mvc时,我的程序可以工作,但当我将其转换为java.lang.NullPointerException时 我不明白,我最近学习了android和java 代码: modelbike.java private int[][] bike; private int leg; private int height; public int[][] getBike() { return bike; } public void setBike(int[][] bike) { t

当我不使用mvc时,我的程序可以工作,但当我将其转换为java.lang.NullPointerException时 我不明白,我最近学习了android和java

代码:

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);
}
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);
}

}

请帮助..

我认为sp_height.getSelectedItem为空,因为最初没有选择任何内容。当您在null上调用toString时,会得到一个NullPointerException。

最好的方法是查看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中正确引用了它,所以我将排除这种可能性。

请发布日志。stacktrace在哪里?哪一行抛出空指针异常?sp_Leg可以为空。你确定你的布局正确吗?我不明白,我的java是newbie@gauravjainm.setHeightInteger.parseIntsp_height.getSelectedItem.toString;
public Object getSelectedItem ()

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