【问题标题】:How to access Button inside "include" layout如何访问“包含”布局中的按钮
【发布时间】:2011-01-24 20:47:47
【问题描述】:
【问题讨论】:
标签:
android
layout
include
onclick
【解决方案1】:
包含标签的 id 被分配给包含布局的根视图。
首先使用 findViewByid 获取对该视图的引用。然后,您可以在该特定视图上调用 findViewById 以获取对布局内视图的引用。所以:
View myLayout = findViewById( R.id.cell1 ); // root View id from that link
View myView = myLayout.findViewById( R.id.someinnerview ); // id of a view contained in the included file
【解决方案2】:
您只需要父视图的 id:
在此示例中,LinearLayout 是我想要从包含的视图中获得的 TextView 的父级。
我现在可以这样做了:
View view = findViewById(R.id.include_title_layout);
TextView titleTV = (TextView) view.findViewById(R.id.newsTitleTextView);
titleTV.setText("Whatever");
【解决方案3】:
您确实知道包含的 ID。你可以得到那个完整的元素,然后从那里得到它的一个子元素。
【解决方案4】:
实际上include 标签包含了你的根布局中的所有元素。因此,您始终可以在 Activity 上使用 findViewById 访问它们。
假设您有一个alayout.xml,其中有一个include 布局。现在在您的一项活动 A 中,在 onCreate 内声明 setContentView(R.layout.alayout) 现在在您的包含布局中,您可能有一个 ID 为 myBtn 的按钮。您可以在 onCreate 中访问它,就像在主布局中访问它一样:findViewById(R.id.myBtn)
【解决方案5】:
我认为您的意思是 NavigationView。您可以通过这种方式访问内部布局:
NavigationView ngv= (NavigationView) findViewById(R.id.navigation_id);
View innerview = ngv.getHeaderView(0);
TextView user_view= (TextView)innerview.findViewById(R.id.nav_name); //any you need
user_view.setText(user);