按下按钮后多个活动应用程序崩溃

时间:2019-06-27 21:07:52

标签: java android

应用开发人员还处于起步阶段,并停留在我的第一个项目中,我希望用户被带到另一个活动中,该活动将显示不同的结果,具体取决于用户选择的单选按钮。经过研究后,我想到了下面的代码(我认为问题出在哪里)。该应用程序启动时在主要活动上没有任何问题。但是,当我单击按钮将我带到包含广播组的第二个活动时,该应用程序崩溃并退出。可能是什么问题呢?请协助。

公共类DestinationActivity扩展了AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_destination); // ----- NEW CODE STARTS ON THE LINE BELOW
    final RadioButton eastlands =  findViewById(R.id.eastlands);
    final RadioButton westlands =  findViewById(R.id.westlands);
    final RadioButton thika_rd =  findViewById(R.id.thika_rd);
    final RadioButton industrial_area =  findViewById(R.id.industrial_area);
    final RadioButton cbd =  findViewById(R.id.cbd);
    final RadioButton kiambu =  findViewById(R.id.kiambu);
    final RadioButton juja =  findViewById(R.id.juja);
    final RadioButton makongeni =  findViewById(R.id.makongeni);
    final RadioButton utawala =  findViewById(R.id.utawala);
    this.finish();



final Button go =  findViewById(R.id.button_start);
    go.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (eastlands.isChecked()) {
            Intent Intents= new Intent(DestinationActivity.this, ResultActivity.class); // <----- START "EASTLANDS/RESULT" ACTIVITY
            startActivity(Intents);  // <-------- INTENTS NAMED ALPHABETICALLY a, b, c, d........
            setContentView(R.layout.activity_result);
        }
        else if (westlands.isChecked()) {
            Intent Intenta = new Intent(getApplicationContext(), WestlandsActivity.class); // <----- START "WESTLANDS" ACTIVITY
            startActivityForResult(Intenta, 0);
        }
        else if (thika_rd.isChecked()) {
            Intent Intentb = new Intent(getApplicationContext(), ThikaActivity.class); // <----- START "THIKA" ACTIVITY
            startActivityForResult(Intentb, 0);
        }
        else if (industrial_area.isChecked()) {
            Intent Intentc = new Intent(getApplicationContext(), IndustrialActivity.class); // <----- START "INDUSTRIAL" ACTIVITY
            startActivityForResult(Intentc, 0);
        }
        else if (cbd.isChecked()) {
            Intent Intentc = new Intent(getApplicationContext(), CbdActivity.class); // <----- START "CBD" ACTIVITY
            startActivityForResult(Intentc, 0);
        }
        else if (kiambu.isChecked()) {
            Intent Intentd = new Intent(getApplicationContext(), KiambuActivity.class); // <----- START "KIAMBU" ACTIVITY
            startActivityForResult(Intentd, 0);
        }
        else if (juja.isChecked()) {
            Intent Intente = new Intent(getApplicationContext(), JujaActivity.class); // <----- START "JUJA" ACTIVITY
            startActivityForResult(Intente, 0);
        }
        else if (makongeni.isChecked()) {
            Intent Intentf = new Intent(getApplicationContext(), MakongeniActivity.class); // <----- START "MAKONGENI" ACTIVITY
            startActivityForResult(Intentf, 0);
        }
        else if (utawala.isChecked()) {
            Intent Intentg = new Intent(getApplicationContext(), UtawalaActivity.class); // <----- START "UTAWALA" ACTIVITY
            startActivityForResult(Intentg, 0);
        }
    }
});

}

2 个答案:

答案 0 :(得分:4)

您应删除带有this.finish()的行。原因finish()方法退出了活动。

答案 1 :(得分:0)

您应将此行 finish()移到onClick的内部,并放在最后一行。

相关问题