Android Studios应用崩溃

爱奥那

我创建了一个需要imageview才能在android studio中打开新活动的应用。我可以使用它,但是突然间它停止了工作,现在在选择我的图像视图时崩溃了。下面是我的代码:

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
Process: com.example.ben.restaurantapp, PID: 1966
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.ben.restaurantapp/com.example.ben.restaurantapp.PayorOrder}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.Intent.getIntExtra(java.lang.String, int)' on a null object reference
 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
 at android.app.ActivityThread.access$800(ActivityThread.java:144)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:135)
 at android.app.ActivityThread.main(ActivityThread.java:5221)
 at java.lang.reflect.Method.invoke(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:372)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.Intent.getIntExtra(java.lang.String, int)' on a null object reference
 at com.example.ben.restaurantapp.PayorOrder.<init>(PayorOrder.java:16)
 at java.lang.reflect.Constructor.newInstance(Native Method)
 at java.lang.Class.newInstance(Class.java:1572)
 at android.app.Instrumentation.newActivity(Instrumentation.java:1065)
 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)
 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
 at android.app.ActivityThread.access$800(ActivityThread.java:144) 
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
 at android.os.Handler.dispatchMessage(Handler.java:102) 
 at android.os.Looper.loop(Looper.java:135) 
 at android.app.ActivityThread.main(ActivityThread.java:5221) 
 at java.lang.reflect.Method.invoke(Native Method) 
 at java.lang.reflect.Method.invoke(Method.java:372) 
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 

编辑2:付款或订单类别:

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);
    }
}
}
尼克·罗伯逊(Nic Robertson)

DinnerTable currentTable = tables.get(getIntent().getIntExtra("Table", -1));

有您的问题,您需要getIntent().getIntExtra()在可以保证getIntent()不会为null的地方调用方法

改成 DinnerTable currentTable;

然后在您的 onCreate

currentTable = tables.get(getIntent().getIntExtra("Table", -1));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android Studios应用登录失败并崩溃

来自分类Dev

简单的Android应用崩溃

来自分类Dev

onViewStateRestored崩溃的android应用

来自分类Dev

Facebook登录android应用崩溃

来自分类Dev

Android setChecked(true)崩溃应用

来自分类Dev

[Android] Google Gson崩溃的应用

来自分类Dev

MVVMCross Binding崩溃导致Android应用程序崩溃

来自分类Dev

Proguard后Android应用程序崩溃

来自分类Dev

android Facebook SDK崩溃的应用程序?

来自分类Dev

C JNI库使整个android应用崩溃

来自分类Dev

Android应用程序在setText上崩溃

来自分类Dev

Android:应用经常崩溃,即时运行

来自分类Dev

开始新活动会使Android应用崩溃

来自分类Dev

Android-启用Proguard时应用崩溃

来自分类Dev

Android Map应用程序崩溃

来自分类Dev

暂停时Android应用程序崩溃

来自分类Dev

尝试发送Android图片时应用崩溃

来自分类Dev

android应用程序在getString()行崩溃

来自分类Dev

Android WebView loadURL崩溃的应用程序?

来自分类Dev

Android应用崩溃了,还是要恢复吗?

来自分类Dev

Android应用程序不断与Tabhost崩溃

来自分类Dev

尝试setText()导致Android应用崩溃

来自分类Dev

Android L:LinkageError使应用程序崩溃

来自分类Dev

Android按钮单击崩溃应用程序

来自分类Dev

Eclipse Android应用程序崩溃

来自分类Dev

安装后android应用不会崩溃

来自分类Dev

Android setContentView使我的应用程序崩溃

来自分类Dev

Kivy应用在Android上崩溃

来自分类Dev

Android Wear Step Counter崩溃应用