背景
因项目中用到多个界面,使用单个Activity进行桌面切换,切换桌面使用方法为
setContentView(View view)
使用该方法可以记录之前按键等的状态
viewActivityHome = LayoutInflater.from(this).inflate(R.layout.activity_home, null);
viewActivityAccountManager = LayoutInflater.from(this).inflate(R.layout.activity_account_manager, null);
viewActivityActionIntroduction = LayoutInflater.from(this).inflate(R.layout.activity_action_introduction, null);
viewActivityActionLibrary = LayoutInflater.from(this).inflate(R.layout.activity_action_library, null);
viewActivityFitness = LayoutInflater.from(this).inflate(R.layout.activity_fitness, null);
viewActivityResult = LayoutInflater.from(this).inflate(R.layout.activity_result, null);
viewActivitySportGuide = LayoutInflater.from(this).inflate(R.layout.activity_sport_guide, null);
viewActivitySportTraining = LayoutInflater.from(this).inflate(R.layout.activity_training, null);
setContentView(viewActivityHome);
问题
在一个界面中使用了ListView、GridView,当再次进入该界面是,点击其Item,其OnClick事件无法生效,即OnItemClickListener不执行。
原因
后发现原因可能为切换界面后,焦点还在原界面上,点击就无法生效
解决
在当前界面申请焦点,即使用该方法
requestFocus()
实际使用为
setContentView(viewNowView);
viewNowView.requestFocus();
即可!