2014-12-16 3 views
0

ActionBarActivity를 확장하고 사용자 정의 XML을 표시하는 클래스를 만들었습니다. 그 수업은 거의 모든 활동으로 확장됩니다.액티비티에서 안드로이드 정의 ActionBar에 액세스

내 활동 중 하나에서 해당 사용자 정의 XML 요소에 액세스하려고합니다. Activity2에있을 때 item2의 배경을 변경하려고한다고 가정 해 봅시다. 내 활동의에서 onCreate 방법에

가 된 setContentView 후, 나는 시도 : 버튼의 ID가 올바른 것 같다

View cView = getLayoutInflater().inflate(R.layout.custom_menu, null); 
ImageButton rewards_link = (ImageButton) cView.findViewById(R.id.rewards_link); 
rewards_link.setVisibility(View.GONE); // For test purpose 

경우에도 변경 사항이 적용되지 않습니다. 어떤 아이디어?

+0

어떻게하면 'cView'가 동작 표시 줄에 추가되는 것과 관련이 있습니까? – ianhanniballake

+0

죄송합니다. 질문을 이해할 수 없습니까? 난 그냥 내 사용자 지정 ActionBar에 액세스 한 다음 해당 항목 중 하나를 숨기려고합니다. – keepthepeach

+0

작업 표시 줄과 관련이없는 새로운 레이아웃을 왜 팽창시키고 있습니까? – ianhanniballake

답변

0

당신이 (APPCOMPAT의 V21 또는 getSupportActionBar()) getActionBar().setCustomView(R.layout.custom_menu);를 통해 사용자 정의보기를 설정하는 경우에, 당신이보기로 직접 findViewById()를 사용하여 이러한 뷰에 액세스 할 수 있습니다 단지 setContentView()를 통해 추가 뷰와 같은 뷰 계층 구조의 일부입니다

ImageButton rewards_link = (ImageButton) findViewById(R.id.rewards_link); 
rewards_link.setVisibility(View.GONE); // For test purpose 
+0

고마워요,하지만 그렇게하면'rewards_link.setVisibility (View.GONE);'는 NullPointerException를 반환합니다. – keepthepeach

관련 문제