Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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 为什么在打开活动时应用程序会停止_Android - Fatal编程技术网

Android 为什么在打开活动时应用程序会停止

Android 为什么在打开活动时应用程序会停止,android,Android,为什么当我打开此活动时,我的应用程序会停止,但当我删除ArrayList和adpeter时,它会工作并且不会停止 错误: E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.mypos, PID: 14010 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mypos/com.example.mypos

为什么当我打开此活动时,我的应用程序会停止,但当我删除
ArrayList
和adpeter时,它会工作并且不会停止

错误:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.mypos, PID: 14010
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mypos/com.example.mypos.EditPage}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2706)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2788)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1536)
        at android.os.Handler.dispatchMessage(Handler.java:111)
        at android.os.Looper.loop(Looper.java:207)
        at android.app.ActivityThread.main(ActivityThread.java:5867)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Spinner.setAdapter(android.widget.SpinnerAdapter)' on a null object reference
        at com.example.mypos.EditPage.onCreate(EditPage.java:50)
        at android.app.Activity.performCreate(Activity.java:6309)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2653)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2788) 
        at android.app.ActivityThread.-wrap11(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1536) 
        at android.os.Handler.dispatchMessage(Handler.java:111) 
        at android.os.Looper.loop(Looper.java:207) 
        at android.app.ActivityThread.main(ActivityThread.java:5867) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 
I/Process: Sending signal. PID: 14010 SIG: 9
Application terminated.
以及守则:

     List<String>List = new ArrayList<>();
        List.add("Food");
        List.add("Drink");
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, List);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);



 public void AddProduct(){
            btnAddproduct.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String name = NAME.getText().toString().trim();
                    String price = PRICE.getText().toString().trim();
                    String itemvalue = spinner.getSelectedItem().toString();
                    if (NAME .length() !=0 && PRICE.length() !=0){
                    if (itemvalue == "Food"){
                        boolean AddFoods = FOODsDB.addDataFoods(name,price);
                        if(AddFoods == true){
                            Toast.makeText(EditPage.this, " Food Added", Toast.LENGTH_LONG).show();
                        }else { Toast.makeText(EditPage.this, " Something Went Wrong", Toast.LENGTH_LONG).show();}
                    }else{}

                    if (itemvalue == "Drinks"){
                        boolean AddDrinks = FOODsDB.addDataDrinks(name,price);
                        if(AddDrinks == true){
                            Toast.makeText(EditPage.this, " Drinks Added", Toast.LENGTH_LONG).show();
                        }else {
                            Toast.makeText(EditPage.this, " Something Went Wrong", Toast.LENGTH_LONG).show(); }
                        } else {
                        Toast.makeText(EditPage.this, " Please Fill up All the text field", Toast.LENGTH_LONG).show();
                    }
                    }
                }
            });
            }




 public  void DeleteData(){
            btnDelete.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                int temp = ID.getText().toString().length();
                String itemvalue = spinner.getSelectedItem().toString();
                if (temp > 0)
                    {
                    if(itemvalue == "Food"){
                        Integer deleteFood = FOODsDB.deleteFood(ID.getText().toString());
                        if(deleteFood > 0){
                            Toast.makeText(EditPage.this," Successfully Deleted Food :(",Toast.LENGTH_LONG).show();
                        }else{
                            Toast.makeText(EditPage.this," Something Went Wrong :(",Toast.LENGTH_LONG).show();
                        }
                    } else{}

                        if(itemvalue == "Drinks"){
                            Integer deleteFood = FOODsDB.deleteDrinks(ID.getText().toString());
                            if(deleteFood > 0){
                                Toast.makeText(EditPage.this," Successfully Deleted Drink ",Toast.LENGTH_LONG).show();
                            }else{
                                Toast.makeText(EditPage.this," Something Went Wrong :(",Toast.LENGTH_LONG).show();
                            }
                        } else{}
                    }
                    else{
                    Toast.makeText(EditPage.this," Please Input an ID",Toast.LENGTH_LONG).show();

                }
                }
            });
            }




  public void UpdateData(){
                        btnUpdate.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                            int temp = ID.getText().toString().length();
                                String itemvalue = spinner.getSelectedItem().toString();
                                if (temp > 0 ){
                                    if(itemvalue == "Food"){
                                    boolean update = FOODsDB.updateData(ID.getText().toString(), NAME.getText().toString(),PRICE.getText().toString());
                                        if (update == true){
                                            Toast.makeText(EditPage.this," Successfully Updated Food",Toast.LENGTH_LONG).show();
                                        }else{
                                            Toast.makeText(EditPage.this," Something Went Wrong :(",Toast.LENGTH_LONG).show();
                                        }
                                    }else{}
                                }else{
                                    Toast.makeText(EditPage.this," Please Input an ID",Toast.LENGTH_LONG).show();
                                }
                            }
                        })
            }
ListList=newarraylist();
列表。添加(“食品”);
列表。添加(“饮料”);
ArrayAdapter=新的ArrayAdapter(这个,android.R.layout.simple\u微调器项目,列表);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
公共产品(){
btnAddproduct.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
String name=name.getText().toString().trim();
字符串price=price.getText().toString().trim();
String itemvalue=spinner.getSelectedItem().toString();
如果(NAME.length()!=0&&PRICE.length()!=0){
如果(itemvalue==“食品”){
布尔AddFoods=FOODsDB.addDataFoods(名称、价格);
if(AddFoods==true){
Toast.makeText(EditPage.this,“添加食物”,Toast.LENGTH_LONG.show();
}else{Toast.makeText(EditPage.this,“出错了”,Toast.LENGTH_LONG.show();}
}else{}
如果(itemvalue==“饮料”){
boolean AddDrinks=FOODsDB.addDataDrinks(名称、价格);
如果(addDiverses==true){
Toast.makeText(EditPage.this,“添加饮料”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(EditPage.this,“出错”,Toast.LENGTH_LONG.show();}
}否则{
Toast.makeText(EditPage.this,“请填写所有文本字段”,Toast.LENGTH_LONG.show();
}
}
}
});
}
公共void DeleteData(){
btnDelete.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
int temp=ID.getText().toString().length();
String itemvalue=spinner.getSelectedItem().toString();
如果(温度>0)
{
如果(itemvalue==“食品”){
整数deleteFood=FOODsDB.deleteFood(ID.getText().toString());
如果(删除食物>0){
Toast.makeText(EditPage.this,“已成功删除食物:(”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(EditPage.this,“出错:(”,Toast.LENGTH_LONG.show();
}
}else{}
如果(itemvalue==“饮料”){
整数deleteFood=FOODsDB.deleteDrinks(ID.getText().toString());
如果(删除食物>0){
Toast.makeText(EditPage.this,“已成功删除饮料”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(EditPage.this,“出错:(”,Toast.LENGTH_LONG.show();
}
}else{}
}
否则{
Toast.makeText(EditPage.this,“请输入ID”,Toast.LENGTH_LONG.show();
}
}
});
}
公共void UpdateData(){
btnUpdate.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
int temp=ID.getText().toString().length();
String itemvalue=spinner.getSelectedItem().toString();
如果(温度>0){
如果(itemvalue==“食品”){
boolean update=FOODsDB.updateData(ID.getText().toString(),NAME.getText().toString(),PRICE.getText().toString());
如果(更新==true){
Toast.makeText(EditPage.this,“成功更新食物”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(EditPage.this,“出错:(”,Toast.LENGTH_LONG.show();
}
}else{}
}否则{
Toast.makeText(EditPage.this,“请输入ID”,Toast.LENGTH_LONG.show();
}
}
})
}

正如日志所述,您的
微调器是空的。这意味着您没有正确地初始化/分配它。

当我们没有初始化视图时,会发生此错误。在设置适配器之前初始化微调器。在使用任何视图之前,我们需要使用
findViewById()初始化视图。

像这样:

Spinner spinner;
//add this line in code 
spinner=findViewById(R.id.spinner);
List<String>List = new ArrayList<>();
        List.add("Food");
        List.add("Drink");
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, List);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
微调器微调器;
//在代码中添加此行
微调器=findViewById(R.id.spinner);
ListList=新的ArrayList();
列表。添加(“食品”);
列表。添加(“饮料”);
ArrayAdapter=新的ArrayAdapter(这个,android.R.layout.simple\u微调器项目,列表);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);

Hey@potpoop,考虑到您添加的代码,很难知道,特别是因为它缺少
活动的全部内容和布局文件。如果您能够组合一个最小的、可复制的示例(),您可能会得到更有利的响应。