我正在使用自定义列表视图进行活动。在我的列表视图中,有两种类型的项目,具有不同的布局。在项目上有一个开关,当我关闭开关时,我转到活动A,当我打开开关时,我转到活动B.
这是我的代码:
Switch enable = (Switch) rowView.findViewById(R.id.enable);
enable.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
Intent intentChange = new Intent(getContext(), ActivityA.class);
intentChange.putExtra(PROPERTY, "test1");
((Activity)getContext()).startActivityForResult(intentChange, 100);
} else {
Intent newIntent=newIntent(getContext(),ActivityB.class);
((Activity)getContext()).startActivityForResult(newIntent, 200);
}
}
});
在每项活动中,我都称之为:
Intent changedIntent=new Intent();
changedLimitIntent.putExtra("changed",changed);
changedLimitIntent.putExtra("changedDesc","desc);
setResult(Activity.RESULT_OK,changedIntent);
finish();
在我使用自定义适配器的活动中,我有以下代码:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == ActivityA.REQUEST_CODE) {
....
} else if (requestCode == ActivityB.REQUEST_CODE) {
.....
}
}
}
然而,当我从自定义列表视图的活动中收到活动A或活动B的结果时,这项工作对我来说没问题,当我单击后退按钮时,我是多少次有这个活动我等待结果来自背堆上的其他活动。我不知道问题是什么。我不喜欢多次参与其他活动的结果。
我希望我对自己的问题很清楚。
答案 0 :(得分:1)
尝试此操作以启动新活动。希望它会对你有所帮助。
Activity_A.this.finish();
Intent intentSettings = new Intent(Activity_A.this, Activity_B.class);
intentSettings.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intentSettings);