【问题标题】:How to access Button inside "include" layout如何访问“包含”布局中的按钮
【发布时间】:2011-01-24 20:47:47
【问题描述】:

参考文档:http://android-developers.blogspot.com/2009/02/android-layout-tricks-2-reusing-layouts.html

我在包含的布局中有一个按钮,如何访问该按钮?不知道身份证!如何定义 OnClickListener...?

请帮忙...

【问题讨论】:

标签: 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);
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-04-26
            • 2011-10-11
            • 2011-08-03
            • 2018-03-24
            • 1970-01-01
            • 2017-05-01
            • 1970-01-01
            相关资源
            最近更新 更多