我想把我的活动发回给一个人。我来解释一下 我正在使用具有4个选项卡的Main活动,每个选项卡都有自己的活动。每项活动都包含更多活动。 当我点击第一个标签中的第一个活动时,问题就开始了。下一个活动是独立的。我创建了下一个活动的意图。在这种情况下,要防止在该新活动中绘制我的标签栏布局。我使用现有的活动布局,删除其中的所有视图。然后我把新活动放进去。
e.g .. contentViewLayout.removeAllViews(); View view = activityManager.startActivity(id,intent).getDecorView(); contentViewLayout.addView(view,contentViewLayoutParams);
完成了。但按下设备BACK按钮时会出现问题。因为新活动是从现有活动开始的。因此,当按下后退按钮时,它将主要活动和应用程序关闭。我想在这种情况下这样做,“新活动”应该终止,现有活动必须重新开始。然后,如果再次按下BACK按钮,则应终止主要活动。 我重写onKeyDown()向下方法如下,但它。剂量不能正常工作?
在我的新活动中。
public boolean onKeyDown(int keyCode,KeyEvent event){
if(keyCode == KeyEvent.KEYCODE_BACK){
childActivity = null;
contentViewLayout.removeAllViews();
mainActivity = new Intent(this,MainActivity.class);
View view = activityManager.startActivity(id, intent).getDecorView();
contentViewLayout.addView(view, contentViewLayoutParams);
return false;
}else{
return super.onKeyDown(keyCode, event);
}
}
但它始终是应用程序而不是关闭子活动
答案 0 :(得分:0)
答案 1 :(得分:0)
我明白了! 实际上,重点活动是主要活动......而不是新活动。所以我们所要做的就是专注于我们的新活动。因此,在新活动的onCreate()方法中,我把重点放在新活动中的任何一个组件上,例如..
button.setFocusable(真); button.requestFocus();
所以在这种情况下新的活动onKeyDownButtonWorks
块引用
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0 ){
//My code goes here.
return true;
}
return super.onKeyDown(keyCode, event);
}