Activity.setContentView()
将活动的整个内容视图切换到onItemSelected回调中的新视图或布局资源,但我希望这不是您想要的,因为它将替换微调器本身. 如何在您的活动的内容视图中添加/替换子视图?这可能是从XML资源中膨胀的视图,并且它们可以共享一些视图ID以减少所需的代码(或者您可以将行为委托给单独的类).
例如:
main.xml中:
<linearLayout ...> <!-- Root element --> <!-- Put your spinner etc here --> <FrameLayout androID:layout_height="fill_parent" androID:layout_wIDth="fill_parent" androID:ID="@+ID/search_criteria_area" /></linearLayout>
search1.xml:
<!-- Contents for first criteria --><linearLayout ...> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:background="#ffff0000" androID:ID="@+ID/search_content_text" /></linearLayout>
search2.xml:
<!-- Contents for second criteria --><linearLayout ...> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:background="#ff00ff00" androID:ID="@+ID/search_content_text" /></linearLayout>
然后在您的活动中,您可以像这样切换它们:
public class SearchActivity extends Activity { // Keep track of the child vIEw with the search criteria. VIEw searchVIEw; @OverrIDe public voID onItemSelected(AdapterVIEw<?> parent,VIEw vIEw,int position,long ID) { VIEwGroup searchVIEwHolder = (VIEwGroup)findVIEwByID(R.ID.search_criteria_area); if (searchVIEw != null) { searchVIEwHolder.removeVIEw(searchVIEw); } int searchVIEwResID; switch(position) { case 0: searchVIEwResID = R.layout.search1; break; case 1: searchVIEwResID = R.layout.search2; break; default: // Do something sensible } searchVIEw = getLayoutInflater().inflate(searchVIEwResID,null); searchVIEwHolder.addVIEw(searchVIEw); TextVIEw searchTextVIEw = (TextVIEw)searchVIEw.findVIEwByID(R.ID.search_content_text); searchTextVIEw.setText("Boosh!"); }}总结
以上是内存溢出为你收集整理的android – 动态更改布局全部内容,希望文章能够帮你解决android – 动态更改布局所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)