[TOC]
背景
因項目中用到多個界面,使用單個Activity進行桌面切換,切換桌面使用方法為
setContentView(View view)
使用該方法可以記錄之前按鍵等的狀態(tài)
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不執(zhí)行。
原因
后發(fā)現原因可能為切換界面后,焦點還在原界面上,點擊就無法生效
解決
在當前界面申請焦點,即使用該方法
requestFocus()
實際使用為
setContentView(viewNowView);
viewNowView.requestFocus();
即可!