由于某种原因,当我在按钮侦听器中调用startActivityForResult
并从活动返回时,此后所有按钮都停止工作。它通过并退出onActivityResult
就好了,应用程序不冻结,因为我仍然可以点击按钮,尽管他们什么都不做。启动应用程序时,它的工作原理应该如此。我在这里错过了什么?OnClickListener在从另一个活动返回后停止工作
public class MainActivity extends Activity {
static final int CAMERA_RESULT_CODE = 1;
static final int INFO_RESULT_CODE = 2;
static final int SYMPTOM_RESULT_CODE = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
// Set the user interface elements
final Button btnCameraActivity = (Button) findViewById(R.id.btnCameraActivity);
btnCameraActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, CropActivity.class);
startActivityForResult(intent, CAMERA_RESULT_CODE);
}
});
final Button btnAgeActivity = (Button) findViewById(R.id.btnAgeActivity);
btnAgeActivity.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, AgeActivity.class);
startActivityForResult(intent, INFO_RESULT_CODE);
}
});
final Button btnSymptomActivity = (Button) findViewById(R.id.btnSymptomActivity);
btnSymptomActivity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SymptomActivity.class);
startActivityForResult(intent, SYMPTOM_RESULT_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
setContentView(R.layout.activity_main);
switch (requestCode) {
case CAMERA_RESULT_CODE:
if (resultCode == RESULT_OK) {
final CheckBox cb1 = (CheckBox) findViewById(R.id.cbCameraActivity);
cb1.setChecked(true);
}
break;
case INFO_RESULT_CODE:
if (resultCode == RESULT_OK) {
final CheckBox cb2 = (CheckBox) findViewById(R.id.cbAgeActivity);
cb2.setChecked(true);
}
break;
case SYMPTOM_RESULT_CODE:
if (resultCode == RESULT_OK) {
final CheckBox cb3 = (CheckBox) findViewById(R.id.cbSymptomActivity);
cb3.setChecked(true);
}
break;
}
}
}
摆脱'onActivityResult()'中的'setContentView()'调用。它重新设置布局,并且所有新的'Button'实例没有设置任何监听器。 –
啊,谢谢你,就是这样。把它作为答案,我可以接受 –