应用开发人员还处于起步阶段,并停留在我的第一个项目中,我希望用户被带到另一个活动中,该活动将显示不同的结果,具体取决于用户选择的单选按钮。经过研究后,我想到了下面的代码(我认为问题出在哪里)。该应用程序启动时在主要活动上没有任何问题。但是,当我单击按钮将我带到包含广播组的第二个活动时,该应用程序崩溃并退出。可能是什么问题呢?请协助。
公共类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);
}
}
});
}
答案 0 :(得分:4)
您应删除带有this.finish()
的行。原因finish()
方法退出了活动。
答案 1 :(得分:0)
您应将此行 finish()移到onClick的内部,并放在最后一行。