Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
Java Android工作室应用程序崩溃_Java_Android_Android Studio - Fatal编程技术网

Java Android工作室应用程序崩溃

Java Android工作室应用程序崩溃,java,android,android-studio,Java,Android,Android Studio,我已经创建了一个应用程序,它需要一个imageview来在android Studio中打开一个新的活动。我让它工作,但突然它停止工作,现在崩溃时,我的ImageView被选中。 下面是我的代码: public class Options extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState)

我已经创建了一个应用程序,它需要一个imageview来在android Studio中打开一个新的活动。我让它工作,但突然它停止工作,现在崩溃时,我的ImageView被选中。 下面是我的代码:

public class Options extends AppCompatActivity {

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

    ImageView imgview1 =  (ImageView) findViewById(R.id.imageView1);
    imgview1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(Options.this, PayorOrder.class);
            myIntent.putExtra("Table", 1);
            startActivity(myIntent);

        }
    });

    ImageView imgview2 =  (ImageView) findViewById(R.id.imageView2);
    imgview2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent2 = new Intent(Options.this, PayorOrder.class);
            myIntent2.putExtra("Table", 2);
            startActivity(myIntent2);
        }
    });

    ImageView imgview3 =  (ImageView) findViewById(R.id.imageView3);
    imgview3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent3 = new Intent(Options.this, PayorOrder.class);
            myIntent3.putExtra("Table", 3);
            startActivity(myIntent3);

        }
    });

    ImageView imgview4 =  (ImageView) findViewById(R.id.imageView4);
    imgview4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent4 = new Intent(Options.this, PayorOrder.class);
            myIntent4.putExtra("Table", 4);
            startActivity(myIntent4);

        }
    });

    ImageView imgview5 =  (ImageView) findViewById(R.id.imageView5);
    imgview5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent5 = new Intent(Options.this, PayorOrder.class);
            myIntent5.putExtra("Table", 5);
            startActivity(myIntent5);

        }
    });

    ImageView imgview6 =  (ImageView) findViewById(R.id.imageView6);
    imgview6.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent6 = new Intent(Options.this, PayorOrder.class);
            myIntent6.putExtra("Table", 6);
            startActivity(myIntent6);

        }
    });
}

}
有人知道它为什么不起作用吗?真让我困惑,谢谢

编辑:

04-17 23:16:27.940 1966-1966/com.example.ben.restaurantapp E/AndroidRuntime:FATAL EXCEPTION:main
流程:com.example.ben.restaurantapp,PID:1966
java.lang.RuntimeException:无法实例化活动组件信息{com.example.ben.restaurantapp/com.example.ben.restaurantapp.payorder}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int-android.content.Intent.getIntExtra(java.lang.String,int)”
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)上
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)上
在android.app.ActivityThread.access$800(ActivityThread.java:144)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:135)
位于android.app.ActivityThread.main(ActivityThread.java:5221)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int android.content.Intent.getIntExtra(java.lang.String,int)”
在com.example.ben.restaurantapp.payorder.(payorder.java:16)
位于java.lang.reflect.Constructor.newInstance(本机方法)
位于java.lang.Class.newInstance(Class.java:1572)
位于android.app.Instrumentation.newActivity(Instrumentation.java:1065)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)上
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)上
在android.app.ActivityThread.access$800(ActivityThread.java:144)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:135)
位于android.app.ActivityThread.main(ActivityThread.java:5221)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Edit2:付款或订单类别:

public class PayorOrder extends AppCompatActivity {

Hashtable <Integer, DinnerTable> tables = new Hashtable<>();
DinnerTable currentTable = tables.get(getIntent().getIntExtra("Table", -1));

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

    Button btn = (Button) findViewById(R.id.btnOrder);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(PayorOrder.this, Menu.class);
            myIntent.putExtra("Table", (Parcelable) currentTable);
            startActivity(myIntent);
        }

    });

    if(tables.get(1) == null  )
    setupHashtable();
    Toast t = Toast.makeText(PayorOrder.this, String.valueOf(getIntent().getIntExtra("Table", -1)), Toast.LENGTH_SHORT);
    t.show();

}

private void setupHashtable() {
    for (int i = 1; i < 7; i++)
    {
        DinnerTable dt = new DinnerTable();
        dt.setTableNum(i);
        tables.put(dt.getTableNum(), dt);
    }
}
}
公共类付款人扩展AppCompative活动{
Hashtable tables=新的Hashtable();
晚餐表currentTable=tables.get(getIntent().getIntExtra(“表”,-1));
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u payor\u order);
按钮btn=(按钮)findViewById(R.id.btnOrder);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent myIntent=newintent(payorder.this,Menu.class);
myIntent.putExtra(“表”,(可包裹的)当前表);
星触觉(myIntent);
}
});
if(tables.get(1)==null)
setupHashtable();
Toast t=Toast.makeText(PayorOrder.this,String.valueOf(getIntent().getIntExtra(“表”,-1)),Toast.LENGTH\u SHORT);
t、 show();
}
私有void setupHashtable(){
对于(int i=1;i<7;i++)
{
餐桌dt=新餐桌();
dt.setTableNum(i);
tables.put(dt.getTableNum(),dt);
}
}
}

晚餐表currentTable=tables.get(getIntent().getIntExtra(“Table”,-1))

这就是您的问题所在,您需要调用
getIntent().getIntExtra()
方法,在该方法中,您可以保证
getIntent()
不会为空

将其更改为
餐桌电流表

然后在创建时分配它


currentTable=tables.get(getIntent().getIntExtra(“Table”,-1))
晚餐表currentTable=tables.get(getIntent().getIntExtra(“Table”,-1))

这就是您的问题所在,您需要调用
getIntent().getIntExtra()
方法,在该方法中,您可以保证
getIntent()
不会为空

将其更改为
餐桌电流表

然后在创建时分配它



currentTable=tables.get(getIntent().getIntExtra(“Table”,-1))

你可以发布crashlogs吗?编辑:查看发布crashlogs你可以发布crashlogs吗?编辑:查看发布crashlogs你有一个
NullPointerException吗在
PayOrder
中调用
getIntExtra
时,我将如何解决此问题?请发布
PayOrder
classIf的代码,如果我将其更改为currentTable==tables.get(getIntent().getIntExtra(“Table”,-1));我收到错误了吗?很抱歉,这是一个输入错误,请删除第二个
=
功能完美。非常感谢,非常感谢!如果这个答案修正了你的问题,请考虑接受它,让其他人知道问题已经解决了。谢谢。如果我将其更改为currentTable==tables.get(getIntent().getIntExtra(“Table”,-1));我收到错误了吗?很抱歉,这是一个输入错误,请删除第二个
=
功能完美。非常感谢,非常感谢!如果这个答案修正了你的问题,请考虑接受它,让其他人知道问题已经解决了。谢谢
public class PayorOrder extends AppCompatActivity {

Hashtable <Integer, DinnerTable> tables = new Hashtable<>();
DinnerTable currentTable = tables.get(getIntent().getIntExtra("Table", -1));

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

    Button btn = (Button) findViewById(R.id.btnOrder);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(PayorOrder.this, Menu.class);
            myIntent.putExtra("Table", (Parcelable) currentTable);
            startActivity(myIntent);
        }

    });

    if(tables.get(1) == null  )
    setupHashtable();
    Toast t = Toast.makeText(PayorOrder.this, String.valueOf(getIntent().getIntExtra("Table", -1)), Toast.LENGTH_SHORT);
    t.show();

}

private void setupHashtable() {
    for (int i = 1; i < 7; i++)
    {
        DinnerTable dt = new DinnerTable();
        dt.setTableNum(i);
        tables.put(dt.getTableNum(), dt);
    }
}
}