从Activity访问android自定义ActionBar

时间:2014-12-16 00:52:15

标签: android android-actionbar android-custom-view

我创建了一个扩展ActionBarActivity并显示自定义XML的类。几乎所有的活动都延伸了这门课程。

我想从我的一个活动中访问该自定义XML的元素。我想说当我在Activity2中时,我想要更改item2的背景。

在我的活动的onCreate方法中,在setContentView之后,我尝试了:

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

即使按钮ID似乎正确,更改也不适用。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

如果您要通过getActionBar().setCustomView(R.layout.custom_menu);设置自定义视图(或者对于AppCompat的v21版getSupportActionBar()),那么您可以直接使用findViewById()来访问这些视图,因为视图是您的一部分查看层次结构就像通过setContentView()添加的视图一样:

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

答案 1 :(得分:-1)

使用#getCustomView

=ARRAYFORMULA(FLATTEN(REGEXREPLACE(TRIM(QUERY(QUERY(
 {A2:A&":", B2:B&","}, 
 "select max(Col2) 
  where not Col1 starts with ':' 
  group by Col2 
  pivot Col1"),,9^9)), ",$", )))